More reliable network writes in Predis\Protocols\TextProtocol.

This commit is contained in:
Daniele Alessandri
2011-02-12 15:18:52 +01:00
parent fc3ee47140
commit 8a145bc6c9
+11 -1
View File
@@ -1581,7 +1581,17 @@ class TextProtocol implements IRedisProtocol {
$buffer .= "\${$arglen}\r\n{$argument}\r\n";
}
fwrite($connection->getResource(), $buffer);
$socket = $connection->getResource();
while (($length = strlen($buffer)) > 0) {
$written = fwrite($socket, $buffer);
if ($length === $written) {
return;
}
if ($written === false || $written === 0) {
$this->onCommunicationException('Error while writing bytes to the server');
}
$value = substr($buffer, $written);
}
}
public function read(IConnectionSingle $connection) {