[issue19270] Document that sched.cancel() doesn't distinguish equal events and can break order

2021-07-30 Thread Andrei Kulakov
Andrei Kulakov added the comment: This can be closed as fixed. -- nosy: +andrei.avk ___ Python tracker ___ ___ Python-bugs-list mai

[issue19270] Document that sched.cancel() doesn't distinguish equal events and can break order

2020-10-19 Thread Serhiy Storchaka
Serhiy Storchaka added the comment: New changeset 5368c2b6e23660cbce7e38dc68f859c66ac349ee by Bar Harel in branch 'master': bpo-19270: Fixed sched.scheduler.cancel to cancel correct event (GH-22729) https://github.com/python/cpython/commit/5368c2b6e23660cbce7e38dc68f859c66ac349ee --

[issue19270] Document that sched.cancel() doesn't distinguish equal events and can break order

2020-10-16 Thread Bar Harel
Change by Bar Harel : -- pull_requests: +21694 stage: needs patch -> patch review pull_request: https://github.com/python/cpython/pull/22729 ___ Python tracker ___

[issue19270] Document that sched.cancel() doesn't distinguish equal events and can break order

2020-09-16 Thread Jonas Norling
Jonas Norling added the comment: @bar.harel: I didn't find a PR, so I'd like to encourage you to submit one :-) I stumbled onto this bug when the scheduler would cancel the wrong event for me (Python 3.7, 3.8). Raymond's suggestion 1 sounds reasonable; it would be very unlikely to break code

[issue19270] Document that sched.cancel() doesn't distinguish equal events and can break order

2020-06-23 Thread Bar Harel
Bar Harel added the comment: @Raymond your first idea sounds good and was the first thing that came to my mind. I only worried about breaking things, so I gave the more conservative suggestion. If breaking a few eggs isn't an issue and the implications of your idea are agreed upon, I'll pat

[issue19270] Document that sched.cancel() doesn't distinguish equal events and can break order

2020-06-22 Thread Raymond Hettinger
Raymond Hettinger added the comment: > Cancelling an unintended event instead of the one we wanted is a bug, > and prevents me from using the library at all That problem is certainly worth fixing even if we have to break a few eggs to do it (this module has been around for a very long time an

[issue19270] Document that sched.cancel() doesn't distinguish equal events and can break order

2020-06-22 Thread STINNER Victor
Change by STINNER Victor : -- nosy: -vstinner ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.p

[issue19270] Document that sched.cancel() doesn't distinguish equal events and can break order

2020-06-19 Thread Bar Harel
Bar Harel added the comment: I've just encountered this bug as well. Although this issue is old, #1 should be fixed whether we like it or not. Cancelling an unintended event instead of the one we wanted is a bug, and prevents me from using the library at all (I schedule events based on absol

[issue19270] Document that sched.cancel() doesn't distinguish equal events and can break order

2018-10-09 Thread Josh Rosenberg
Josh Rosenberg added the comment: Victor: "I would be interested of the same test on Windows." Looks like someone performed it by accident, and filed #34943 in response (because time.monotonic() did in fact return the exact same time twice in a row on Windows). -- _

[issue19270] Document that sched.cancel() doesn't distinguish equal events and can break order

2015-05-28 Thread Josh Rosenberg
Josh Rosenberg added the comment: sched has been around for a long time, but it's been useless for so many purposes that it *should* handle (completely unsafe in threaded contexts until 3.3, still can't handle useful threaded scenarios today, e.g. scheduling tasks for short delays when drainin

[issue19270] Document that sched.cancel() doesn't distinguish equal events and can break order

2013-10-21 Thread Giampaolo Rodola'
Giampaolo Rodola' added the comment: > This module has been around for a long time and no users have reported > any issues with respect to event ordering. The logic is essentially > the same as is used in popular event loops like Tornado. > Please don't just make-up a new invariant for this mo

[issue19270] Document that sched.cancel() doesn't distinguish equal events and can break order

2013-10-21 Thread Antoine Pitrou
Antoine Pitrou added the comment: > 4. Mixed strategy. First use identity search, then equality search, > and only if found several equals events fallback to slow variant. This > is too complicated. It will work as expected in most normal cases, but > in rare cases... This behavior would hard to

[issue19270] Document that sched.cancel() doesn't distinguish equal events and can break order

2013-10-21 Thread Serhiy Storchaka
Serhiy Storchaka added the comment: > I'm not strong on a new invariant, however I think bug #1 would deserve > fixing: How would you do this? 1. Use identity instead equality to search canceled event. It will break code where an user cancels an event by time and priority: scheduler.cancel(E

[issue19270] Document that sched.cancel() doesn't distinguish equal events and can break order

2013-10-21 Thread Antoine Pitrou
Antoine Pitrou added the comment: I'm not strong on a new invariant, however I think bug #1 would deserve fixing: > 1. sched.cancel() can remove wrong event (because it uses equality instead > identity). -- ___ Python tracker

[issue19270] Document that sched.cancel() doesn't distinguish equal events and can break order

2013-10-21 Thread STINNER Victor
STINNER Victor added the comment: @Raymond: The logic is essentially the same as is used in popular event loops like Tornado. Sorry, I didn't understand your sentence: do you mean that sched must keep the insertion order or the order is undefined? Undefined order is fine if it's documented.

[issue19270] Document that sched.cancel() doesn't distinguish equal events and can break order

2013-10-21 Thread Serhiy Storchaka
Serhiy Storchaka added the comment: Well. In any case I have no ideas how fix it. Any behavior change will break existing code. I requalify this issue as documentation enhancement. The documentation should specify that evens scheduled on same tame with same priority considered equal. That can