Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gevent
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
gevent
Commits
4278c117
Commit
4278c117
authored
Dec 05, 2017
by
Jason Madden
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add change note.
parent
50ce399b
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
52 additions
and
1 deletion
+52
-1
CHANGES.rst
CHANGES.rst
+52
-1
No files found.
CHANGES.rst
View file @
4278c117
...
...
@@ -87,7 +87,7 @@
:meth:`gevent.subprocess.Popen.terminate`. Reported in :issue:`1023`
by Giacomo Debidda.
- ``socket.send()`` now catches ``EPROTYPE`` on macOS to handle a race
- ``socket.send()`` now catches ``EPROT
OT
YPE`` on macOS to handle a race
condition during shutdown. Fixed in :pr:`1035` by Jay Oster.
- :func:`gevent.socket.create_connection` now properly cleans up open
...
...
@@ -98,6 +98,57 @@
- Update c-ares to 1.13.0. See :issue:`990`.
- Add initial *experimental* support for using libuv as a backend
instead of libev, controlled by setting the environment variable
``GEVENT_CORE_CFFI_ONLY=libuv`` before importing gevent. This only
works on POSIX systems and it still suffers a number of limitations
compared to libev, notably:
- Timers (such as ``gevent.sleep`` and ``gevent.Timeout``) only
support a resolution of 1ms. Attempting to use something smaller
will automatically increase it to 1ms and issue a warning.
- Using negative timeouts may behave differently from libev.
- Timers seem to suffer from more jitter than libev.
- libuv blocks delivery of all signals, so signals are handled using
an (arbitrary) 1 second timer. This means that signal handling
will be delayed by up to that amount, and that the longest the
event loop can sleep in the operating system's ``poll`` call is
that amount.
- libuv only supports one io watcher per file descriptor, whereas
libev and gevent have always supported many watchers using
different settings. The libev behaviour is emulated at the Python
level, but that adds overhead.
- Looping multiple times and expecting events for the same file
descriptor to be raised each time without any data being read or
written (as works with libev) does not appear to work correctly on
Linux when using ``gevent.select.poll`` or a monkey-patched
``selectors.PollSelector``.
- The implementation uses more reference cycles and weak references
than either of the libev implementations (cython or CFFI), so
pressure on the garbage collector will be higher.
- The build system may not be correctly producing embedded static
libraries, at least on OS X. libuv 1.18 or higher is required.
- If anything unexpected happens, libuv likes to ``abort()`` the
entire process instead of reporting an error. For example, closing
a file descriptor it is using in a watcher may cause the entire
process to be exited.
Feedback and pull requests are welcome, especially to address the
issues mentioned above and for Windows support.
Again, this is extremely experimental and all of it is subject to
change.
See :issue:`790` for history and more in-depth discussion.
1.2.2 (2017-06-05)
==================
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment