Lines Matching refs:self

29         def __init__(self, sock):
34 self._id = _resource_sharer.register(send, new_sock.close)
36 def detach(self):
38 with _resource_sharer.get_connection(self._id) as conn:
47 def __init__(self, fd):
53 self._id = _resource_sharer.register(send, close)
55 def detach(self):
57 with _resource_sharer.get_connection(self._id) as conn:
63 def __init__(self):
64 self._key = 0
65 self._cache = {}
66 self._lock = threading.Lock()
67 self._listener = None
68 self._address = None
69 self._thread = None
70 util.register_after_fork(self, _ResourceSharer._afterfork)
72 def register(self, send, close):
74 with self._lock:
75 if self._address is None:
76 self._start()
77 self._key += 1
78 self._cache[self._key] = (send, close)
79 return (self._address, self._key)
90 def stop(self, timeout=None):
93 with self._lock:
94 if self._address is not None:
95 c = Client(self._address,
99 self._thread.join(timeout)
100 if self._thread.is_alive():
103 self._listener.close()
104 self._thread = None
105 self._address = None
106 self._listener = None
107 for key, (send, close) in self._cache.items():
109 self._cache.clear()
111 def _afterfork(self):
112 for key, (send, close) in self._cache.items():
114 self._cache.clear()
115 self._lock._at_fork_reinit()
116 if self._listener is not None:
117 self._listener.close()
118 self._listener = None
119 self._address = None
120 self._thread = None
122 def _start(self):
124 assert self._listener is None, "Already have Listener"
126 self._listener = Listener(authkey=process.current_process().authkey)
127 self._address = self._listener.address
128 t = threading.Thread(target=self._serve)
131 self._thread = t
133 def _serve(self):
138 with self._listener.accept() as conn:
143 send, close = self._cache.pop(key)