def _connection_lost(conn_id, *closables): if closables: pythonshare._close(*closables) try: for ns in _g_namespace_users[conn_id]: try: _g_local_namespaces[ns]["pythonshare_ns"].call_on_disconnect(conn_id) except KeyError: pass except KeyError: pass
def _connection_lost(conn_id, *closables): if closables: pythonshare._close(*closables) for ns in _g_namespace_users[conn_id]: _g_local_namespaces[ns]["pythonshare_ns"].call_on_disconnect(conn_id)
def __del__(self): pythonshare._close(self.conn, self.to_remote, self.from_remote)
def close(self): pythonshare._close(self._to_server, self._from_server, self._s)
def close(self): pythonshare._check_hook("before:client.socket.close", {"socket": self._s}) pythonshare._close(self._to_server, self._from_server, self._s)
else: # synchronous execution, return true return value exec_rv = _local_execute(obj) if opt_debug: daemon_log("%s:%s <= %s" % (conn.getpeername() + (exec_rv,))) try: cPickle.dump(exec_rv, to_client) except (TypeError, cPickle.PicklingError): # pickling rv fails exec_rv.expr_rv = messages.Unpicklable(exec_rv.expr_rv) cPickle.dump(exec_rv, to_client) to_client.flush() else: daemon_log("unknown message type: %s in %s" % (type(obj), obj)) if opt_debug: daemon_log("disconnected %s:%s" % conn.getpeername()) pythonshare._close(to_client, from_client, conn) def start_server(host, port, ns_init_import_export=[]): daemon_log("pid: %s" % (os.getpid(),)) # Initialise, import and export namespaces for task, ns, arg in ns_init_import_export: if task == "init": _init_local_namespace(ns, arg, force=True) elif task == "export": _init_local_namespace(ns, None, force=True) c = pythonshare.connection(arg) if c.export_ns(ns): _register_exported_namespace(ns, c)