Vinay Sajip added the comment:

I agree the lock could be seen as redundant as there are no shared data 
structures used by the current implementation of the enqueue and prepare 
methods (which are called after the lock is acquired), but users could 
potentially override those methods in subclasses in ways that require locking 
to be thread-safe. Currently, people overriding emit() [or code called from 
there] know that any state they manipulate there is protected by the handler 
lock - and this would not be the case if I implemented your suggestion. It 
could certainly break subclasses of QueueHandler which are out there in the 
wild.

Note that the reference to locking is there in the Handler.handle docstring - 
https://docs.python.org/library/logging.html#logging.Handler.handle - so 
changing it would change the contract which is documented.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue24645>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to