Giampaolo Rodola' <[email protected]> added the comment:
New patch in attachment takes care of modifying empty() and queue property
according with the new implementation.
With this, the API behaves the same as before (this was my main concern).
Also, it's smarter when it comes to cleaning up too many pending cancelled
items:
if self._cancellations > 50 \
and self._cancellations > (len(self._queue) >> 1):
...
Also, I made a little benchmark script (in attachment) to make sure that the
speed of the rest of the API hasn't been significantly affected by this change:
BEFORE THE PATCH
test_cancel : time=0.66648 : calls=1 : stdev=0.00000
test_empty : time=0.00026 : calls=1 : stdev=0.00000
test_enter : time=0.00309 : calls=1 : stdev=0.00000
test_queue : time=6.20777 : calls=1 : stdev=0.00000
test_run : time=0.00746 : calls=1 : stdev=0.00000
AFTER THE PATCH
test_cancel : time=0.00054 : calls=1 : stdev=0.00000
test_empty : time=0.00031 : calls=1 : stdev=0.00000
test_enter : time=0.00375 : calls=1 : stdev=0.00000
test_queue : time=6.30314 : calls=1 : stdev=0.00000
test_run : time=0.00716 : calls=1 : stdev=0.00000
----------
nosy: +josiah.carlson, josiahcarlson
Added file: http://bugs.python.org/file23785/cancel.patch
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue13451>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com