I've noticed that the worker-connection sometimes freezes.
The reason for this is an unhandled io.ErrShortWrite error caused inside agent.write().
The writer throws this error when a worker-go-routine writes "dtWorkComplete" just after the main-thread receives a "dtNoop" but before sending "dtPreSleep".
In other words:
dtNoop
dtWorkComplete
dtPreSleep
This causes the issue because the go-routine is missing a synclock inside worker.exec().
I've solved this by changing:
Hello.
I've noticed that the worker-connection sometimes freezes. The reason for this is an unhandled io.ErrShortWrite error caused inside agent.write().
The writer throws this error when a worker-go-routine writes "dtWorkComplete" just after the main-thread receives a "dtNoop" but before sending "dtPreSleep". In other words:
dtNoop dtWorkComplete dtPreSleep
This causes the issue because the go-routine is missing a synclock inside worker.exec(). I've solved this by changing:
into