diff --git a/sjrpc/core/rpcconnection.py b/sjrpc/core/rpcconnection.py index 62435fd0e8c171e29259d87ed4133dc14b8b996e..be7515667fa3524206969f3c6f418feb6f0455f2 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): '''