Commit graph

123 commits

Author SHA1 Message Date
Antoine Pitrou
23bba4ca39 Issue #11750: The Windows API functions scattered in the _subprocess and
_multiprocessing.win32 modules now live in a single module "_winapi".
Patch by sbt.
2012-04-18 20:51:15 +02:00
Charles-François Natali
c8ce715a82 Issue #14087: multiprocessing: add Condition.wait_for(). Patch by sbt. 2012-04-17 18:45:57 +02:00
Antoine Pitrou
df97cbe7a1 Issue #14522: Avoid duplicating socket handles in multiprocessing.connection.
Patch by sbt.
2012-04-07 22:38:52 +02:00
Antoine Pitrou
5c73e8eaf4 Issue #14482: Raise a ValueError, not a NameError, when trying to create
a multiprocessing Client or Listener with an AF_UNIX type address under
Windows.  Patch by Popa Claudiu.
2012-04-03 20:13:45 +02:00
Antoine Pitrou
6d20cba8d6 Issue #14482: Raise a ValueError, not a NameError, when trying to create
a multiprocessing Client or Listener with an AF_UNIX type address under
Windows.  Patch by Popa Claudiu.
2012-04-03 20:12:23 +02:00
Antoine Pitrou
93bba8fb8a Issue #14151: Raise a ValueError, not a NameError, when trying to create
a multiprocessing Client or Listener with an AF_PIPE type address under
non-Windows platforms.  Patch by Popa Claudiu.
2012-04-01 17:25:49 +02:00
Antoine Pitrou
709176f10c Issue #14151: Raise a ValueError, not a NameError, when trying to create
a multiprocessing Client or Listener with an AF_PIPE type address under
non-Windows platforms.  Patch by Popa Claudiu.
2012-04-01 17:19:09 +02:00
Antoine Pitrou
846fd302a0 Issue #14335: multiprocessing's custom Pickler subclass now inherits from the C-accelerated implementation.
Patch by sbt.
2012-03-17 00:23:04 +01:00
Antoine Pitrou
bdb1cf1ca5 Issue #12328: Fix multiprocessing's use of overlapped I/O on Windows.
Also, add a multiprocessing.connection.wait(rlist, timeout=None) function
for polling multiple objects at once.  Patch by sbt.

Complete changelist from sbt's patch:

* Adds a wait(rlist, timeout=None) function for polling multiple
  objects at once.  On Unix this is just a wrapper for
  select(rlist, [], [], timeout=None).

* Removes use of the SentinelReady exception and the sentinels argument
  to certain methods.  concurrent.futures.process has been changed to
  use wait() instead of SentinelReady.

* Fixes bugs concerning PipeConnection.poll() and messages of zero
  length.

* Fixes PipeListener.accept() to call ConnectNamedPipe() with
  overlapped=True.

* Fixes Queue.empty() and SimpleQueue.empty() so that they are
  threadsafe on Windows.

* Now PipeConnection.poll() and wait() will not modify the pipe except
  possibly by consuming a zero length message.  (Previously poll()
  could consume a partial message.)

* All of multiprocesing's pipe related blocking functions/methods are
  now interruptible by SIGINT on Windows.
2012-03-05 19:28:37 +01:00
Sandro Tosi
cd77815e4c Issue #11836: document and expose multiprocessing.SimpleQueue 2012-02-15 23:27:00 +01:00
Charles-François Natali
ed4a8fc095 Issue #8184: multiprocessing: On Windows, don't set SO_REUSEADDR on Connection
sockets, and set FILE_FLAG_FIRST_PIPE_INSTANCE on named pipes, to make sure two
listeners can't bind to the same socket/pipe (or any existing socket/pipe).
2012-02-08 21:15:58 +01:00
Charles-François Natali
edc67feaa4 Issue #8184: Fix a potential file descriptor leak when a
multiprocessing.Connection socket can't be bound.
2012-02-04 15:12:08 +01:00
Charles-François Natali
992ca5278e Issue #8184: Fix a potential file descriptor leak when a
multiprocessing.Connection socket can't be bound.
2012-02-04 14:55:53 +01:00
Antoine Pitrou
2d843d2520 Issue #13812: When a multiprocessing Process child raises an exception, flush stderr after printing the exception traceback. 2012-01-27 10:53:35 +01:00
Antoine Pitrou
84a0fbf6b0 Issue #13812: When a multiprocessing Process child raises an exception, flush stderr after printing the exception traceback. 2012-01-27 10:52:37 +01:00
Charles-François Natali
fe8039b3e5 Issue #13565: Increase multiprocessing's server socket backlog, to avoid
dropped connections in case of simultaneous connection requests.
2011-12-23 19:06:48 +01:00
Charles-François Natali
78c1b42fde Issue #13565: Increase multiprocessing's server socket backlog, to avoid
dropped connections in case of simultaneous connection requests.
2011-12-23 19:07:58 +01:00
Antoine Pitrou
de911b2915 Issue #12708: Add starmap() and starmap_async() methods (similar to itertools.starmap()) to multiprocessing.Pool.
Patch by Hynek Schlawack.
2011-12-21 11:03:24 +01:00
Charles-François Natali
e6eabd4345 Issue #13215: multiprocessing.Connection: don't hammer the remote end with
retries in case of ECONNREFUSED.
2011-11-19 09:59:43 +01:00
Florent Xicluna
04842a84c3 Remove unused or redundant imports in concurrent.futures and multiprocessing. 2011-11-11 20:05:50 +01:00
Antoine Pitrou
021572431b Issue #13373: multiprocessing.Queue.get() could sometimes block indefinitely
when called with a timeout.  Patch by Arnaud Ysmal.
2011-11-10 00:38:25 +01:00
Antoine Pitrou
a365113679 Issue #13373: multiprocessing.Queue.get() could sometimes block indefinitely
when called with a timeout.  Patch by Arnaud Ysmal.
2011-11-10 00:37:09 +01:00
Florent Xicluna
5d1155c08e Closes #13258: Use callable() built-in in the standard library. 2011-10-28 14:45:05 +02:00
Charles-François Natali
f8859e1808 Issue #10332: multiprocessing: fix a race condition when a Pool is closed
before all tasks have completed.
2011-10-24 18:45:29 +02:00
Ezio Melotti
e130a52d8a Remove duplication. 2011-10-19 10:58:56 +03:00
Florent Xicluna
aabbda5354 Merge 3.2 2011-10-28 14:52:29 +02:00
Charles-François Natali
feeb3a366c Issue #10332: multiprocessing: fix a race condition when a Pool is closed
before all tasks have completed.
2011-10-24 18:47:43 +02:00
Antoine Pitrou
24d659daaf Use InterruptedError instead of checking for EINTR 2011-10-23 23:49:42 +02:00
Ezio Melotti
f10644983e Merge with 3.2. 2011-10-19 11:06:26 +03:00
Antoine Pitrou
6b4883dec0 PEP 3151 / issue #12555: reworking the OS and IO exception hierarchy. 2011-10-12 02:54:14 +02:00
Charles-François Natali
dc863ddf79 Issue #12981: rewrite multiprocessing_{sendfd,recvfd} in Python. 2011-09-24 20:04:29 +02:00
Charles-François Natali
225aa4f8ec Issue #12996: multiprocessing.connection: transmit the header in network byte
order (endpoints machines can have different endianness).
2011-09-20 19:27:39 +02:00
Éric Araujo
0cdd4454f3 Remove indirection in threading (issue #10968).
The public names (Thread, Condition, etc.) used to be factory functions
returning instances of hidden classes (_Thread, _Condition, etc.),
because (if Guido recalls correctly) this code pre-dates the ability to
subclass extension types.

It is now possible to inherit from Thread and other classes, without
having to import the private underscored names like multiprocessing did.

A doc update will follow: a patch is under discussion on the issue.
2011-07-28 00:28:28 +02:00
Antoine Pitrou
fb96089b13 Fix test_multiprocessing failure under Windows.
(followup to dfaa3a149a92)
2011-07-20 02:01:39 +02:00
Antoine Pitrou
dc19c24832 Silence spurious "broken pipe" tracebacks when shutting down a ProcessPoolExecutor. 2011-07-16 01:51:58 +02:00
Antoine Pitrou
428bc6c48f Issue #12573: Add resource checks for dangling Thread and Process objects. 2011-07-15 22:15:38 +02:00
Antoine Pitrou
c081c0c6a0 Issue #12573: Add resource checks for dangling Thread and Process objects. 2011-07-15 22:12:24 +02:00
Antoine Pitrou
600012028e Add comment 2011-07-09 01:03:46 +02:00
Antoine Pitrou
71a28a9174 Rebind locally the globals which can be looked up at shutdown
(to avoid the warnings seen on a buildbot)
2011-07-09 01:03:00 +02:00
Charles-François Natali
723585bbaf Merge issue #12352: Fix a deadlock in multiprocessing.Heap when a block is
freed by the garbage collector while the Heap lock is held.
2011-07-02 14:43:11 +02:00
Charles-François Natali
a4a04069fd Merge issue #12352: Fix a deadlock in multiprocessing.Heap when a block is
freed by the garbage collector while the Heap lock is held.
2011-07-02 14:39:53 +02:00
Charles-François Natali
778db49da9 Issue #12352: Fix a deadlock in multiprocessing.Heap when a block is freed by
the garbage collector while the Heap lock is held.
2011-07-02 14:35:49 +02:00
Victor Stinner
395dc58ee7 (merge 3.2) Issue #12285: multiprocessing.Pool() raises a ValueError if the
number of processes if negative or null.
2011-06-20 17:54:03 +02:00
Victor Stinner
2fae27b735 Issue #12285: multiprocessing.Pool() raises a ValueError if the number of
processes if negative or null.
2011-06-20 17:53:35 +02:00
Victor Stinner
3bcc0170bd (Merge 3.2) Issue #12310: finalize the old process after _run_after_forkers()
multiprocessing: Process._bootstrap() keeps a reference to the old process to
delay its finalization until after _run_after_forkers() as been executed. This
change should fix a crash on Mac OS X Tiger when a lock is released after a
fork.

Patch written by Charles-François Nataliv and Antoine Pitrou.
2011-06-17 12:36:26 +02:00
Victor Stinner
0f83b1511c Issue #12310: finalize the old process after _run_after_forkers()
multiprocessing: Process._bootstrap() keeps a reference to the old process to
delay its finalization until after _run_after_forkers() as been executed. This
change should fix a crash on Mac OS X Tiger when a lock is released after a
fork.

Patch written by Charles-François Nataliv and Antoine Pitrou.
2011-06-17 12:31:49 +02:00
Antoine Pitrou
dd69649660 Issue #9205: concurrent.futures.ProcessPoolExecutor now detects killed
children and raises BrokenProcessPool in such a situation.  Previously it
would reliably freeze/deadlock.
2011-06-08 17:21:55 +02:00
Antoine Pitrou
34b312e33d Whitespace normalization 2011-06-06 19:36:01 +02:00
Antoine Pitrou
176f07dadf Issue #12040: Expose a new attribute sentinel on instances of
:class:`multiprocessing.Process`.  Also, fix Process.join() to not use
polling anymore, when given a timeout.
2011-06-06 19:35:31 +02:00
Antoine Pitrou
5aa878c61a os.dup()-then-close() can be replaced with detach() 2011-05-09 21:00:28 +02:00