jgehrcke / gipc

gevent-cooperative child processes and inter-process communication
https://gehrcke.de/gipc
MIT License
83 stars 13 forks source link

[Windows] run error #25

Closed heyilin416 closed 6 years ago

heyilin416 commented 7 years ago

16:10:49,26.0 [9480]main# Throughput benchmark 16:10:49,26.0 [9480]main# Determining N ... Process _GProcess-1: Traceback (most recent call last): File "C:\Python27\lib\multiprocessing\process.py", line 258, in _bootstrap self.run() File "C:\Python27\lib\multiprocessing\process.py", line 114, in run self._target(*self._args, self._kwargs) File "build\bdist.win32\egg\gipc\gipc.py", line 361, in _child target(*args, *kwargs) File "E:\nomand\source\server\test\multiprocessTest.py", line 134, in writer_process writer.put('stop') File "build\bdist.win32\egg\gipc\gipc.py", line 765, in exit "operation out of context." % self)) GIPCLocked: Context manager can't close handle <_GIPCWriter_5ee3d3 fd: 4>. It's locked for I/O operation out of context. Traceback (most recent call last): File "C:\Python27\lib\site-packages\gevent-1.1.0-py2.7-win32.egg\gevent\threadpool.py", line 207, in _worker value = func(args, kwargs) OSError: [Errno 22] Invalid argument (<ThreadPool at 0x29875f0 0/1/10>, ) failed with OSError

Traceback (most recent call last): File "E:/nomand/source/server/test/multiprocessTest.py", line 162, in main() File "E:/nomand/source/server/test/multiprocessTest.py", line 56, in main benchmark_manager(msg, repetitions) File "E:/nomand/source/server/test/multiprocessTest.py", line 70, in benchmark_manager N, elapsed = benchmark(N, msg) File "E:/nomand/source/server/test/multiprocessTest.py", line 118, in benchmark syncw.put("SYN") File "build\bdist.win32\egg\gipc\gipc.py", line 924, in put File "build\bdist.win32\egg\gipc\gipc.py", line 892, in _write File "C:\Python27\lib\site-packages\gevent-1.1.0-py2.7-win32.egg\gevent\os.py", line 139, in tp_write return get_hub().threadpool.apply(_write, (fd, buf)) File "C:\Python27\lib\site-packages\gevent-1.1.0-py2.7-win32.egg\gevent\pool.py", line 300, in apply return self.spawn(func, *args, kwds).get() File "C:\Python27\lib\site-packages\gevent-1.1.0-py2.7-win32.egg\gevent\event.py", line 379, in get return self.get(block=False) File "C:\Python27\lib\site-packages\gevent-1.1.0-py2.7-win32.egg\gevent\event.py", line 369, in get return self._raise_exception() File "C:\Python27\lib\site-packages\gevent-1.1.0-py2.7-win32.egg\gevent\event.py", line 349, in _raise_exception reraise(self.exc_info) File "C:\Python27\lib\site-packages\gevent-1.1.0-py2.7-win32.egg\gevent\threadpool.py", line 207, in _worker value = func(args, kwargs) OSError: [Errno 22] Invalid argument

jgehrcke commented 6 years ago

Thanks for the report. This problem was most probably addressed by https://github.com/jgehrcke/gipc/pull/66.The tests pass on Windows. A new gipc release will soon be available. Closing this already.