*Properly* protect self.thread (renamed from self._thread) with a
lock. The lock is now never held for a long time, only while self.thread is being assigned or inspected, and while a thread is being created, started or stopped. Waiting for an event or joining a thread is now done without holding the lock. There is no longer a fear of AttributeError. When a thread join doesn't succeed within 30 seconds, a message is logged, and depending on the situation, the join is retried.
Showing
Please register or sign in to comment