Conversation
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## master #870 +/- ##
======================================
Coverage 54% 55%
======================================
Files 88 89 +1
Lines 9744 9832 +88
Branches 1814 1829 +15
======================================
+ Hits 5297 5408 +111
+ Misses 4081 4053 -28
- Partials 366 371 +5
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
|
FWIW, I've worked with code that needed to allow multiple readers. The long and short of it was needing to have a lock that would play nice with both greenthreads and real threads to work around #432; more details are available in openstack/swift@6d16079 / LP #1710328 Unfortunately, it also worked across forks, which seemed unnecessary and likely to impact performance. Eventually I managed to convince myself it wasn't necessary since we were always using UDP/Unix domain sockets for logging, so we wound up dropping the logging lock in openstack/swift@e09d4bc I don't really have anything to add beyond that; I'll try to give this a spin in the near future, though. I just wanted to add some color to
|
|
If someone can make it work, great, I just gave up because how it works at all is an utter mystery to me (notice |
| def is_available(): | ||
| """Python 3 always has asyncio.""" | ||
| return True |
There was a problem hiding this comment.
Seems related to python 2/3 compat. As we dropped support of Python 2.7, I think we could also remove that check
There was a problem hiding this comment.
No, the Hub API requires this, if you don't have this it emits an warning. See https://github.com/eventlet/eventlet/blob/master/eventlet/hubs/__init__.py#L81-L88
|
Docstrings should be documented. If we want to encourage migration to eventlet and, hence, hope to see this feature adopted, then we need to provide a well documented hub. Do you already plan to add docstring or should we add it to our todo list, and, add doc through a follow up patch? Concerning gates, they seems happy, even when the asyncio hub is enabled. That's encouraging! |
|
(I have implemented the start of next step, running asyncio in combination with eventlet, just to see if it actually works, and ... it does! I have a test with aiohttp talking to eventlet's WSGI server. So feeling good about this approach.) |
The public APIs are the Will see if there's anything that does need it though.
Gates? |
Indeed.
WFM.
jobs/tests triggered by github actions |
|
Filed #874 for multiple reader support. |
There was a problem hiding this comment.
As far as I can see, these changes LGTM.
That could be useful, during the squash, to indicate in the commit message, that this patch is inspired from https://gist.github.com/miguelgrinberg/829a20792d7283ae27b1f6a390c378b9 . We shouldn't skimp on the history.
Oh just seen you already put a comment, awesome! |
|
I let you rewrite the commit message and drop useless info. |
* Update requirements from branch 'master'
to 08f829d8375b4059af365191e0907069be9fb739
- Update eventlet to 0.35.0
0.35.0
======
eventlet/eventlet#897
* [fix] fix truncate size nullable eventlet/eventlet#789
* [fix] Handle transport endpoint shutdown in conditions eventlet/eventlet#884
* [fix] Rework reject_bad_requests option eventlet/eventlet#890
* [fix] Fix NameError introduced by #826 eventlet/eventlet#890
* [feature] Support awaiting GreenThread in an `async def` context eventlet/eventlet#889
* [feature] Asyncio hub support for Python 3.7 to 3.9 eventlet/eventlet#886
* [fix] Fix bad exceptions handlings eventlet/eventlet#883
* [feature] Support using asyncio coroutines from inside greenlets eventlet/eventlet#877
* [removal] Remove deprecated CGIHTTPServer and SimpleHTTPServer eventlet/eventlet#881
* [feature] Add an asyncio hub for eventlet eventlet/eventlet#870
0.34.3
======
eventlet/eventlet#875
* Fix security issue in the wsgi module related to RFC 9112 eventlet/eventlet#826
* Fix segfault, a new approach for greening existing locks eventlet/eventlet#866
* greendns: fix getaddrinfo parameter name eventlet/eventlet#809
* Fix deprecation warning on ssl.PROTOCOL_TLS eventlet/eventlet#872
* Pytests, fix error at teardown of TestGreenSocket.test_full_duplex eventlet/eventlet#871
* Skip test which uses Py cgi module eventlet/eventlet#865
* Drop old code based on python < 3.7.34.2
======
eventlet/eventlet#861
* Allowing inheritance of GreenSSLSocket without overriding the __new_ method eventlet/eventlet#796
* [bug] Fix broken API related to `__version__` removal eventlet/eventlet#859
* [doc] Fix pypi broken link eventlet/eventlet#857
0.34.1
======
eventlet/eventlet#842
* [bug] Fix memory leak in greendns eventlet/eventlet#810
* [infra] Fix OIDC authentication failure eventlet/eventlet#855
* [bug] Ignore asyncore and asynchat for Python 3.12+ eventlet/eventlet#804
0.34.0 (Not released on Pypi but landed with 0.34.1)
====================================================
* Dropped support for Python 3.6 and earlier.
* Fix Python 3.13 compat by adding missing attibute '_is_main_interpreter' eventlet/eventlet#847
* Add support of Python 3.12 eventlet/eventlet#817
* Drop unmaintained and unused stdlib tests eventlet/eventlet#820
* Fix tests and CI for Python 3.7 and higher eventlet/eventlet#831 and eventlet/eventlet#832
* Stop claiming to create universal wheels eventlet/eventlet#841
* Fix green logging locks for Python versions <= 3.10 eventlet/eventlet#754
Change-Id: I909be1d1812eaed574525866dbc123083684571d
0.35.0 ====== eventlet/eventlet#897 * [fix] fix truncate size nullable eventlet/eventlet#789 * [fix] Handle transport endpoint shutdown in conditions eventlet/eventlet#884 * [fix] Rework reject_bad_requests option eventlet/eventlet#890 * [fix] Fix NameError introduced by #826 eventlet/eventlet#890 * [feature] Support awaiting GreenThread in an `async def` context eventlet/eventlet#889 * [feature] Asyncio hub support for Python 3.7 to 3.9 eventlet/eventlet#886 * [fix] Fix bad exceptions handlings eventlet/eventlet#883 * [feature] Support using asyncio coroutines from inside greenlets eventlet/eventlet#877 * [removal] Remove deprecated CGIHTTPServer and SimpleHTTPServer eventlet/eventlet#881 * [feature] Add an asyncio hub for eventlet eventlet/eventlet#870 0.34.3 ====== eventlet/eventlet#875 * Fix security issue in the wsgi module related to RFC 9112 eventlet/eventlet#826 * Fix segfault, a new approach for greening existing locks eventlet/eventlet#866 * greendns: fix getaddrinfo parameter name eventlet/eventlet#809 * Fix deprecation warning on ssl.PROTOCOL_TLS eventlet/eventlet#872 * Pytests, fix error at teardown of TestGreenSocket.test_full_duplex eventlet/eventlet#871 * Skip test which uses Py cgi module eventlet/eventlet#865 * Drop old code based on python < 3.7.34.2 ====== eventlet/eventlet#861 * Allowing inheritance of GreenSSLSocket without overriding the __new_ method eventlet/eventlet#796 * [bug] Fix broken API related to `__version__` removal eventlet/eventlet#859 * [doc] Fix pypi broken link eventlet/eventlet#857 0.34.1 ====== eventlet/eventlet#842 * [bug] Fix memory leak in greendns eventlet/eventlet#810 * [infra] Fix OIDC authentication failure eventlet/eventlet#855 * [bug] Ignore asyncore and asynchat for Python 3.12+ eventlet/eventlet#804 0.34.0 (Not released on Pypi but landed with 0.34.1) ==================================================== * Dropped support for Python 3.6 and earlier. * Fix Python 3.13 compat by adding missing attibute '_is_main_interpreter' eventlet/eventlet#847 * Add support of Python 3.12 eventlet/eventlet#817 * Drop unmaintained and unused stdlib tests eventlet/eventlet#820 * Fix tests and CI for Python 3.7 and higher eventlet/eventlet#831 and eventlet/eventlet#832 * Stop claiming to create universal wheels eventlet/eventlet#841 * Fix green logging locks for Python versions <= 3.10 eventlet/eventlet#754 Change-Id: I909be1d1812eaed574525866dbc123083684571d
Fixes #869
I gave up on multi-reader support, I can't even figure out how it works and it seems like a terrible idea (though people are using it, based on quick GitHub search).