1
0
Fork 0

Revert "Handle closed input or output stream (#110)"

This reverts commit 83afa0c1b8.
pull/116/head
Felix Becker 2016-10-24 23:20:15 +02:00
parent 5ecab683eb
commit cd3bf18fe2
2 changed files with 12 additions and 6 deletions

View File

@ -6,7 +6,6 @@ namespace LanguageServer;
use LanguageServer\Protocol\Message;
use AdvancedJsonRpc\Message as MessageBody;
use Sabre\Event\Loop;
use RuntimeException;
class ProtocolStreamReader implements ProtocolReader
{
@ -26,11 +25,8 @@ class ProtocolStreamReader implements ProtocolReader
public function __construct($input)
{
$this->input = $input;
Loop\addReadStream($this->input, function () {
if (feof($this->input)) {
throw new RuntimeException('Stream is closed');
}
Loop\addReadStream($this->input, function () {
while (($c = fgetc($this->input)) !== false && $c !== '') {
$this->buffer .= $c;
switch ($this->parsingMode) {

View File

@ -4,6 +4,7 @@ declare(strict_types = 1);
namespace LanguageServer;
use LanguageServer\Protocol\Message;
use RuntimeException;
class ProtocolStreamWriter implements ProtocolWriter
{
@ -30,7 +31,16 @@ class ProtocolStreamWriter implements ProtocolWriter
$totalBytesWritten = 0;
while ($totalBytesWritten < $msgSize) {
$bytesWritten = fwrite($this->output, substr($data, $totalBytesWritten));
error_clear_last();
$bytesWritten = @fwrite($this->output, substr($data, $totalBytesWritten));
if ($bytesWritten === false) {
$error = error_get_last();
if ($error !== null) {
throw new RuntimeException('Could not write message: ' . error_get_last()['message']);
} else {
throw new RuntimeException('Could not write message');
}
}
$totalBytesWritten += $bytesWritten;
}
}