On Thu, 12 Mar 2020, Stephen R. van den Berg wrote:
Marcus Comstedt (ACROSS) (Hail Ilpalazzo!) @ Pike (-) developers forum wrote:
Other threads *are* allowed to add() to the end of the buffer, but nothing else. Releasing the interpreter lock for just doing that should not be necessary?
Without releasing the interpreter lock, no other pike threads can run, which means they can't call add() (even if they are allowed to).
But then, in its current form, the other threads should stall and the add() should not get lost. Yet that appears to be happening.
That is correct, currently no thread should be able to call add() in parallel to write(). If that happens, this is clearly a bug, no data should get lost here.