msg, result, remaining, handle = multi:InfoRead()
This call returns four values:
msg contains the type of message received. This can be
result contains the message result. The
remaining return value indicates how many messages are still in the queue after
this function was called. The
handle return value contains the easy handle that has previously been added to the multi handle.
When you fetch a message using this function, it is removed from the internal queue so calling this function again will not return the same message again. It will instead return new messages at each new invoke until the queue is emptied.
#CURLMSG_DONE, the message identifies a transfer that is done, and then
result contains the return code
for the easy handle that just completed.