Raises a question, I think I remember in the past that the on sockwrite event triggered when the socket buffer became empty, now the help file has besides that also 'or when the socket is ready to send more data'.
How should this be interpreted?
If the socket buffer is empty, doesn't that imply it is ready for new data?
What exactly is this 'socket ready' status?
I've seen a script that uses a high resolution timer which calls an alias that checks $sock().sq and fill it completely as soon as there is 1 byte free (difference between max and .sg), it was claimed as alot faster. To me that appears rather excessive performance wasting (aka very bad efficiency) though.

Another thing is that $sockerr check. Some scripters have a loop inside on SOCKREAD which check $sockerr every iteration. I thought $sockerr was set upon event triggering, and can't change during the execution of the event, and also that during that execution time it can't have data in the socket buffer that wasn't there at the moment the on SOCKREAD was triggered.

Or is the OS able to fill the socket buffer (I read that it's stored in memory allocated to mIRC) while mIRC (singlethreaded) is busy executing the on SOCKREAD script code?