From c80d8defe908a40a2ac0eae222f752a39f8846dd Mon Sep 17 00:00:00 2001 From: Antoine Millet Date: Mon, 31 Jan 2011 16:33:21 +0100 Subject: [PATCH] Outbound buffer is now protected with a lock. --- sjrpc/core/rpcconnection.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/sjrpc/core/rpcconnection.py b/sjrpc/core/rpcconnection.py index 62435fd..be75156 100644 --- a/sjrpc/core/rpcconnection.py +++ b/sjrpc/core/rpcconnection.py @@ -103,8 +103,9 @@ class RpcConnection(object): sent = self._sock.send(data) data = data[sent:] - if not len(self._outbound_buffer): - self._manager.nothing_to_write(self) + with self._outbound_buffer: + if not len(self._outbound_buffer): + self._manager.nothing_to_write(self) def receive(self): ''' @@ -143,8 +144,9 @@ class RpcConnection(object): logging.debug('Sending: %s' % message) json_msg = json.dumps(message) size = struct.pack('!L', len(json_msg)) - self._outbound_buffer.push(size + json_msg) - self._manager.data_to_write(self) + with self._outbound_buffer: + self._outbound_buffer.push(size + json_msg) + self._manager.data_to_write(self) def _send_call(self, method_name, *args, **kwargs): ''' -- GitLab