235 Commits

Author SHA1 Message Date
Yury Selivanov
600a349781 Issue #28613: Fix get_event_loop() to return the current loop
when called from coroutines or callbacks.
2016-11-04 14:29:28 -04:00
Yury Selivanov
c5420492cf asyncio: Sync with upstream 2016-11-03 15:35:23 -07:00
Yury Selivanov
a6fbcd19ac Merge 3.5 (issue #28600) 2016-11-03 15:10:11 -07:00
Yury Selivanov
491a912659 Issue #28600: Optimize loop.call_soon().
Run expensive type checks only in debug mode.  In addition, stop
supporting passing handles to loop.run_in_executor.
2016-11-03 15:09:24 -07:00
Yury Selivanov
a0c1ba608e Issue #28544: Implement asyncio.Task in C.
This implementation provides additional 10-20% speed boost for
asyncio programs.

The patch also fixes _asynciomodule.c to use Arguments Clinic, and
makes '_schedule_callbacks' an overridable method (as it was in 3.5).
2016-10-28 12:52:37 -04:00
Yury Selivanov
6330f2a5ce Merge 3.5 (issue #26796) 2016-10-21 17:41:23 -04:00
Yury Selivanov
e8a6045fea Issue #26796: Don't configure the number of workers for default threadpool executor.
Initial patch by Hans Lawrenz.
2016-10-21 17:40:42 -04:00
Yury Selivanov
ed0540698e Issue #28500: Fix asyncio to handle async gens GC from another thread. 2016-10-21 17:13:40 -04:00
Yury Selivanov
d2c5fab7c6 Merge 3.5 (issue #28371) 2016-10-05 18:29:04 -04:00
Yury Selivanov
0de3de6cbf Issue #28371: Deprecate passing asyncio.Handles to run_in_executor. 2016-10-05 18:28:09 -04:00
Guido van Rossum
0035be3fee Misc asyncio improvements from upstream (merge 3.5->3.6) 2016-09-30 08:18:34 -07:00
Guido van Rossum
e3c65a7a22 Misc asyncio improvements from upstream 2016-09-30 08:17:15 -07:00
Yury Selivanov
1b984ffd44 Merge 3.5 (issue #28174) 2016-09-15 15:46:16 -04:00
Yury Selivanov
5587d7c071 Issue #28174: Handle when SO_REUSEPORT isn't properly supported (asyncio)
Patch by Seth Michael Larson.
2016-09-15 15:45:07 -04:00
Yury Selivanov
d070154fb5 Merge 3.5 (issue #27906) 2016-09-15 14:14:48 -04:00
Yury Selivanov
a1b0e7db73 Issue #27906: Fix socket accept exhaustion during high TCP traffic.
Patch by Kevin Conway.
2016-09-15 14:13:15 -04:00
Yury Selivanov
4357cf6202 Another asyncio sync. 2016-09-15 13:49:08 -04:00
Yury Selivanov
0a91d484a3 Merge 3.5 (asyncio) 2016-09-15 13:24:03 -04:00
Yury Selivanov
f6d991d885 asyncio: Sync with the upstream 2016-09-15 13:10:51 -04:00
Raymond Hettinger
f1024f7425 merge 2016-09-09 15:58:00 -07:00
Guido van Rossum
7b3b3dc85d Merge asyncio upstream. 2016-09-09 14:26:31 -07:00
Yury Selivanov
eb6364557f Issue #28003: Implement PEP 525 -- Asynchronous Generators. 2016-09-08 22:01:51 -07:00
Vinay Sajip
dd917f84e3 Closes #27904: Improved logging statements to defer formatting until needed. 2016-08-31 08:22:29 +01:00
Yury Selivanov
e824315e2b Merge 3.5 (issue #27392) 2016-07-12 18:24:25 -04:00
Yury Selivanov
252e9ed974 Issue #27392: Add loop.connect_accepted_socket().
Patch by Jim Fulton.
2016-07-12 18:23:10 -04:00
Yury Selivanov
552bf94648 Merge 3.5 (issue #27136, asyncio) 2016-06-08 12:33:59 -04:00
Yury Selivanov
f1c6fa9866 Issue #27136: Fix DNS static resolution; don't use it in getaddrinfo
Patch by A. Jesse Jiryu Davis
2016-06-08 12:33:31 -04:00
Yury Selivanov
1f56e5f6af Merge 3.5 (asyncio) 2016-06-02 16:51:27 -04:00
Yury Selivanov
a714616d36 asyncio: Fix getaddrinfo to accept service names (for port)
Patch by A. Jesse Jiryu Davis
2016-06-02 16:51:07 -04:00
Yury Selivanov
642afb3d3d Merge 3.5 (asyncio) 2016-06-02 16:44:10 -04:00
Yury Selivanov
a8f895f051 asyncio: Support host=b'' for getaddrinfo 2016-06-02 16:43:52 -04:00
Yury Selivanov
72005f1744 Merge 3.5 (asyncio) 2016-05-21 16:50:31 -04:00
Yury Selivanov
f0200e06f0 asyncio: Fix BytesWarning (use typed=True in lru_cache for _ipaddr_info) 2016-05-21 16:50:16 -04:00
Yury Selivanov
010f361dad Merge 3.5 (asyncio) 2016-05-20 17:44:44 -04:00
Yury Selivanov
eaaaee8c56 asyncio: Fix getaddrinfo to accept None/str/bytes for 'port' arg
Patch by A. Jesse Jiryu Davis.
2016-05-20 17:44:19 -04:00
Yury Selivanov
8ace2c66d3 Merge 3.5 (Issue #27041) 2016-05-16 15:39:39 -04:00
Yury Selivanov
7661db6228 Issue #27041: asyncio: Add loop.create_future method 2016-05-16 15:38:39 -04:00
Yury Selivanov
7c3ac2d1f8 Merge 3.5 (issue #27040) 2016-05-16 15:32:26 -04:00
Yury Selivanov
7ed7ce6ee7 Issue #27040: Add loop.get_exception_handler method 2016-05-16 15:20:38 -04:00
Victor Stinner
00f4648a39 Merge 3.5 (asyncio) 2016-04-01 21:43:54 +02:00
Victor Stinner
c94a93aecb asyncio: Don't log ConnectionAbortedError
Issue #26509: In fatal error handlers, don't log ConnectionAbortedError which
occur on Windows.
2016-04-01 21:43:39 +02:00
Victor Stinner
e19558af1b Add a source parameter to warnings.warn()
Issue #26604:

* Add a new optional source parameter to _warnings.warn() and warnings.warn()
* Modify asyncore, asyncio and _pyio modules to set the source parameter when
  logging a ResourceWarning warning
2016-03-23 00:28:08 +01:00
Yury Selivanov
e076ffb068 asyncio: Remove duplicate bind addresses in create_server.
Patch by Sebastien Bourdeauducq (issue #26338)
2016-03-02 11:17:01 -05:00
Yury Selivanov
d5c2a62100 asyncio: Skip getaddrinfo if host is already resolved.
getaddrinfo takes an exclusive lock on some platforms, causing clients to queue
up waiting for the lock if many names are being resolved concurrently. Users
may want to handle name resolution in their own code, for the sake of caching,
using an alternate resolver, or to measure DNS duration separately from
connection duration. Skip getaddrinfo if the "host" passed into
create_connection is already resolved.

See https://github.com/python/asyncio/pull/302 for details.

Patch by A. Jesse Jiryu Davis.
2015-12-16 19:31:17 -05:00
Guido van Rossum
41f69f4cc7 Issue #25593: Change semantics of EventLoop.stop(). 2015-11-19 13:28:47 -08:00
Guido van Rossum
b9bf913ab3 Issue #23972: updates to asyncio datagram API. By Chris Laws. 2015-10-05 09:15:28 -07:00
Victor Stinner
5e4a7d8dc7 Issue #23630, asyncio: host parameter of loop.create_server() can now be a
sequence of strings. Patch written by Yann Sionneau.
2015-09-21 18:33:43 +02:00
Yury Selivanov
2a8911c0b7 asyncio: Sync with upstream (compat module) 2015-08-04 15:56:33 -04:00
Yury Selivanov
996083d6e6 asyncio: Sync with mainstream 2015-08-04 15:37:24 -04:00
Yury Selivanov
e8944cb217 asyncio: Make sure sys.set_coroutine_wrapper is called *only* when loop is running.
Previous approach of installing coroutine wrapper in loop.set_debug() and
uninstalling it in loop.close() was very fragile.  Most of asyncio tests
do not call loop.close() at all.  Since coroutine wrapper is a global
setting, we have to make sure that it's only set when the loop is
running, and is automatically unset when it stops running.

Issue #24017.
2015-05-12 11:43:04 -04:00