mirror of
				https://opendev.org/x/pyghmi
				synced 2025-10-31 11:22:24 +00:00 
			
		
		
		
	Fix race condition in requesting delays
When something other than the IO worker thread requests a delay, there was an interval between pending requests and the new deadline being calculated during which the non-IO thread would erroneously consider the old rather than upcoming deadline. Address by creating a worst case deadline prior to evaluating pending requests. Change-Id: Iabde555eb81d2155f4bc4562f0b3a209e1be42a9
This commit is contained in:
		| @@ -65,6 +65,11 @@ def _ioworker(initialized): | ||||
|             timeout = 0 | ||||
|         selectdeadline = _monotonic_time() + timeout | ||||
|         tmplist, _, _ = select.select(iosockets, (), (), timeout) | ||||
|         # pessimistically move out the deadline | ||||
|         # doing it this early (before ioqueue is evaluated) | ||||
|         # this avoids other threads making a bad assumption | ||||
|         # about not having to break into the select | ||||
|         selectdeadline = _monotonic_time() + 300 | ||||
|         rdylist = [] | ||||
|         for handle in tmplist: | ||||
|             if handle is selectbreak[0]: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user