I notice in nesk/rialto/src/ProcessSupervisor.php / readNextProcessValue that $this->client->selectRead($readTimeout) is called, but its boolean return value is not saved and, therefore, used. In at least one instance (say a SOCKET_EAGAIN exception), it would be helpful to use that value to possibly try again (as suggested in the PHP constants reference manual for SOCKET_EAGAIN) - this is a very crude retry mechanism, I admit:
In the event that a subsequent client->read takes place, it wiil except for other causes, but is less likely to for what would have been a SOCKET_EAGAIN error.
Perhaps worth investigating further for a better solution than the simple retry I suggest above?
The situation that caused this for me was a very large number of puPHPeteer page->evaluate() calls happening in a short space of time.
I notice in
nesk/rialto/src/ProcessSupervisor.php / readNextProcessValue
that$this->client->selectRead($readTimeout)
is called, but its boolean return value is not saved and, therefore, used. In at least one instance (say aSOCKET_EAGAIN
exception), it would be helpful to use that value to possibly try again (as suggested in the PHP constants reference manual forSOCKET_EAGAIN
) - this is a very crude retry mechanism, I admit:In the event that a subsequent client->read takes place, it wiil except for other causes, but is less likely to for what would have been a
SOCKET_EAGAIN
error.Perhaps worth investigating further for a better solution than the simple retry I suggest above?
The situation that caused this for me was a very large number of puPHPeteer
page->evaluate()
calls happening in a short space of time.