Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
proton-c-0.33.0
-
None
-
linux
Description
If an unassigned (ready) task and a free thread were each most recently working together, the epoll proactor tries to reassign them together for the next processing of the task, so that a warm memory cache may help performance.
One half of this pairing information is in tslot_t->prev_task. This value is always set to NULL, defeating the warm cache strategy. In unassign_thread() prev_task should be set from the local variable that contains the correct value and not the member variable tslot_t->task which is zeroed on an earlier line.