Mostly to be on the safe side and allow enough time for the condition variable to catch a signal. However, it looks like a better way would be to simply wait on the condition variable for 1ms (no need for SleepForMicroseconds in this case) and set the done flag before sending a signal in destructor. Made this change in ceea4cb. PTAL