Destroy queues that can no longer be used. This way they can be replaced by new usable sockets.
(self, queues, proc)
| 1312 | assert len(self._queues) == before |
| 1313 | |
| 1314 | def destroy_queues(self, queues, proc): |
| 1315 | """Destroy queues that can no longer be used. |
| 1316 | |
| 1317 | This way they can be replaced by new usable sockets. |
| 1318 | """ |
| 1319 | assert not proc._is_alive() |
| 1320 | self._waiting_to_start.discard(proc) |
| 1321 | removed = 1 |
| 1322 | try: |
| 1323 | self._queues.pop(queues) |
| 1324 | except KeyError: |
| 1325 | removed = 0 |
| 1326 | try: |
| 1327 | self.on_inqueue_close(queues[0]._writer.fileno(), proc) |
| 1328 | except OSError: |
| 1329 | pass |
| 1330 | for queue in queues: |
| 1331 | if queue: |
| 1332 | for sock in (queue._reader, queue._writer): |
| 1333 | if not sock.closed: |
| 1334 | self.hub_remove(sock) |
| 1335 | try: |
| 1336 | sock.close() |
| 1337 | except OSError: |
| 1338 | pass |
| 1339 | return removed |
| 1340 | |
| 1341 | def _create_payload(self, type_, args, |
| 1342 | dumps=_pickle.dumps, pack=pack, |
no test coverage detected