@@ -55,13 +55,13 @@ class StreamIO extends AbstractIO
55
55
private $ canDispatchPcntlSignal ;
56
56
57
57
/** @var string */
58
- private static $ ERRNO_EQUALS_EAGAIN ;
58
+ private static $ SOCKET_STRERROR_EAGAIN ;
59
59
60
60
/** @var string */
61
- private static $ ERRNO_EQUALS_EWOULDBLOCK ;
61
+ private static $ SOCKET_STRERROR_EWOULDBLOCK ;
62
62
63
63
/** @var string */
64
- private static $ ERRNO_EQUALS_EINTR ;
64
+ private static $ SOCKET_STRERROR_EINTR ;
65
65
66
66
/**
67
67
* @param string $host
@@ -85,10 +85,10 @@ public function __construct(
85
85
throw new \InvalidArgumentException ('read_write_timeout must be at least 2x the heartbeat ' );
86
86
}
87
87
88
- // SOCKET_EAGAIN can't be accessed in Windows
89
- self ::$ ERRNO_EQUALS_EAGAIN = ' errno= ' . (defined (' SOCKET_EAGAIN ' ) ? SOCKET_EAGAIN : SOCKET_EWOULDBLOCK );
90
- self ::$ ERRNO_EQUALS_EWOULDBLOCK = ' errno= ' . SOCKET_EWOULDBLOCK ;
91
- self ::$ ERRNO_EQUALS_EINTR = ' errno= ' . SOCKET_EINTR ;
88
+ // SOCKET_EAGAIN is not defined in Windows
89
+ self ::$ SOCKET_STRERROR_EAGAIN = socket_strerror (defined (SOCKET_EAGAIN ) ? SOCKET_EAGAIN : SOCKET_EWOULDBLOCK );
90
+ self ::$ SOCKET_STRERROR_EWOULDBLOCK = socket_strerror ( SOCKET_EWOULDBLOCK ) ;
91
+ self ::$ SOCKET_STRERROR_EINTR = socket_strerror ( SOCKET_EINTR ) ;
92
92
93
93
$ this ->protocol = 'tcp ' ;
94
94
$ this ->host = $ host ;
@@ -347,13 +347,14 @@ public function write($data)
347
347
public function error_handler ($ errno , $ errstr , $ errfile , $ errline , $ errcontext = null )
348
348
{
349
349
// fwrite notice that the stream isn't ready - EAGAIN or EWOULDBLOCK
350
- if (strpos ($ errstr , self ::$ ERRNO_EQUALS_EAGAIN ) !== false || strpos ($ errstr , self ::$ ERRNO_EQUALS_EWOULDBLOCK ) !== false ) {
350
+ if (strpos ($ errstr , self ::$ SOCKET_STRERROR_EAGAIN ) !== false
351
+ || strpos ($ errstr , self ::$ SOCKET_STRERROR_EWOULDBLOCK ) !== false ) {
351
352
// it's allowed to retry
352
353
return null ;
353
354
}
354
355
355
356
// stream_select warning that it has been interrupted by a signal - EINTR
356
- if (strpos ($ errstr , self ::$ ERRNO_EQUALS_EINTR ) !== false ) {
357
+ if (strpos ($ errstr , self ::$ SOCKET_STRERROR_EINTR ) !== false ) {
357
358
// it's allowed while processing signals
358
359
return null ;
359
360
}
0 commit comments