21df18deac
Motivation: This bug could occasionally cause SSL handshakes to time out, because the server-side handshake would fail to resume its event loop. Modification: Async delegate SSL tasks now lower their NEED_TASK status after they have executed, but before they run their completion callback. This is important because the completion callback could be querying the handshake status. This could cause the task delegator thread and the event look to race. If the event look queries the handshake status first, it might think that it still needs to delegate another task. If this happens, the delegator find a null task, and then fail to resume the event loop, causing the handshake to stall. Result: This data race no longer causes handshake timeouts. |
||
---|---|---|
.. | ||
main | ||
test |