Really fix deadlock causing race condition
This commit is contained in:
		@@ -39,13 +39,12 @@ class PipeWriterThread(Thread):
 | 
			
		||||
        return open(self._pipe_path, 'wb')
 | 
			
		||||
 | 
			
		||||
    def stop(self):
 | 
			
		||||
        self._unblock()
 | 
			
		||||
        while self.is_alive():
 | 
			
		||||
            self._unblock()
 | 
			
		||||
        self.join()
 | 
			
		||||
 | 
			
		||||
    def _unblock(self):
 | 
			
		||||
        while True:
 | 
			
		||||
            with suppress(OSError):
 | 
			
		||||
                fd = osopen(self._pipe_path, O_RDONLY | O_NONBLOCK)
 | 
			
		||||
                self._write_queue.push_front(None)
 | 
			
		||||
                close(fd)
 | 
			
		||||
                break
 | 
			
		||||
        with suppress(OSError):
 | 
			
		||||
            fd = osopen(self._pipe_path, O_RDONLY | O_NONBLOCK)
 | 
			
		||||
            self._write_queue.push_front(None)
 | 
			
		||||
            close(fd)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user