- 28 Oct, 2016 29 commits
-
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
Sadly this exposes the fact that libuv doesn't allow multiple handles for a given poll fd. Nor does it raise clear errors until you try to close them in an order different from the inverse of the one they were created in. Doing so simply aborts the process when libuv realises that the watcher it has registered is not the watcher you're closing. This further means that multiple watchers wont' get the right set of events delivered, I think (though most of the tests were passing until I discovered this crash).
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
Sadly, libuv simply cannot be used in a child process that has fork()'d from a parent that also used libuv. The result is a pretty quick abort() and crash. It *may* be possible to implement `subprocess` on top of uv_spawn (I haven't looked into that), but things like multiprocessing and futures.ProcessPoolExecutor would be completely broken. Comments in commit.
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
fixes test__loop_callback.
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
The test_threading_2 failure was due to CFFI under Python 3; that combo hadn't actually been tested before. There's a detailed comment in this commit that explains the failure and the workaround.
-
Jason Madden authored
All the tests pass except for test_threading_2.ThreadJoinOnShutdown.test_3_join_in_forked_from_thread. This is failing because threading._shutdown is failing. That in turn is failing because threading._after_fork is getting called. Now, threading._after_fork is *supposed to always be called*. This is handled directly by os.fork(). But instrumentation shows that it doesn't get called when we use the C library (and if we do call it, the test fails), and apparently it didn't get called before the refactoring. Not sure what's going on.
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
[skip ci]
-
- 27 Oct, 2016 9 commits
-
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
Fixes #222. Rather than provide a messy monkey-patch on top of `fcntl`, it's simpler just to mention this attribute, which seems to be stable, and has at least one reported use of working. [skip ci]
-
- 26 Oct, 2016 2 commits
-
-
Jason Madden authored
This time, I saw a bunch of errors like this, which maybe suggest something is leaking between tests, but I don't know what: =================================================== ERROR: test_quit (__main__.Test) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\projects\gevent\src\greentest\greentest.py", line 289, in wrap_restore_handle_error return method(self, *args, **kwargs) File "C:\projects\gevent\src\greentest\greentest.py", line 278, in wrap_error_fatal return method(self, *args, **kwargs) File "C:\projects\gevent\src\greentest\greentest.py", line 161, in wrap_timeout return method(self, *args, **kwargs) File "test__backdoor.py", line 75, in test_quit conn = self._create_connection() File "test__backdoor.py", line 46, in _create_connection conn.connect(('127.0.0.1', self._server.server_port)) File "C:\Python34-x64\lib\site-packages\gevent\_socket3.py", line 291, in connect r = getaddrinfo(address[0], address[1], self.family) File "C:\Python34-x64\lib\site-packages\gevent\_socketcommon.py", line 272, in getaddrinfo return get_hub().resolver.getaddrinfo(host, port, family, socktype, proto, flags) File "C:\Python34-x64\lib\site-packages\gevent\resolver_thread.py", line 65, in getaddrinfo return self.pool.apply(_socket.getaddrinfo, args, kwargs) File "C:\Python34-x64\lib\site-packages\gevent\pool.py", line 326, in apply return self.spawn(func, *args, **kwds).get() File "C:\Python34-x64\lib\site-packages\gevent\event.py", line 382, in get self._wait_core(timeout, ()) File "C:\Python34-x64\lib\site-packages\gevent\event.py", line 106, in _wait_core result = self.hub.switch() File "C:\projects\gevent\src\greentest\greentest.py", line 468, in switch return _original_Hub.switch(self, *args) File "C:\Python34-x64\lib\site-packages\gevent\hub.py", line 630, in switch return RawGreenlet.switch(self) OSError: [Errno 9] File descriptor was closed in another greenlet ---------------------------------------------------------------------- Ran 6 tests in 10.319s
-
Jason Madden authored
-