Message320525
* Pool._repopulate_pool() creates processes with args=(self._inqueue, ...)
* Pool._inqueue is a multiprocessing.queues.SimpleQueue
* Process.__init__() of multiprocessing.popen_spawn_win32 calls reduction.dump(process_obj, to_child) which indirectly contains the SimpleQueue
* A SimpleQueue object contains: self._reader, self._writer = connection.Pipe(duplex=False)
* dump() indirectly calls reduce_connection() (ex: for SimpleQueue._reader) of multiprocessing.connection
* reduce_connection() duplicates the pipe handle
It's unclear to me who is supposed to close the duplicated pipe handles? reduce_connection() creates a "ds = resource_sharer.DupSocket(s)" object, but this object doesn't seem to call CloseHandle()? |
|
Date |
User |
Action |
Args |
2018-06-26 23:53:32 | vstinner | set | recipients:
+ vstinner, paul.moore, pitrou, tim.golden, zach.ware, steve.dower, davin |
2018-06-26 23:53:31 | vstinner | set | messageid: <1530057211.98.0.56676864532.issue33966@psf.upfronthosting.co.za> |
2018-06-26 23:53:31 | vstinner | link | issue33966 messages |
2018-06-26 23:53:31 | vstinner | create | |
|