-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 0.9.3
-
Fix Version/s: 0.10.0
-
Component/s: C++ - Library
-
Labels:None
-
Patch Info:Patch Available
This is a sequence that exposes the race condition:
(1) Thread-1: in serve(), blocked on accept()
(2) Thread-2: in stop(), calls interrupt()
(3) Thread-2: in stop(), in interruptChildren(), checked that socket is valid
(4) Thread-1: in serve(), unblocked because of interrupt(), calls releaseOneDescriptor
(5) Thread-2: in interruptChildren(), send fails so clients are not interrupted
- links to