From 816307c665680b7e3768f80c4131c37c4d6499b0 Mon Sep 17 00:00:00 2001 From: Aaron Piotrowski Date: Sun, 18 Jun 2017 11:47:58 -0500 Subject: [PATCH] Fix writing in watcher callback if $chunkSize is null --- lib/ResourceOutputStream.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/ResourceOutputStream.php b/lib/ResourceOutputStream.php index 962d60d..b9542d0 100644 --- a/lib/ResourceOutputStream.php +++ b/lib/ResourceOutputStream.php @@ -68,7 +68,12 @@ public function __construct($stream, int $chunkSize = null) { } // Error reporting suppressed since fwrite() emits E_WARNING if the pipe is broken or the buffer is full. - $written = @\fwrite($stream, $data, $chunkSize); + // Use conditional, because PHP doesn't like getting null passed. + if ($chunkSize) { + $written = @\fwrite($stream, $data, $chunkSize); + } else { + $written = @\fwrite($stream, $data); + } if ($written === false || $written === 0) { $writable = false; @@ -163,6 +168,7 @@ private function send(string $data, bool $end = false): Promise { } if ($written === false) { + $this->close(); $message = "Failed to write to stream"; if ($error = \error_get_last()) { $message .= \sprintf(" Errno: %d; %s", $error["type"], $error["message"]);