Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions Lib/multiprocessing/dummy/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,11 @@
# Imports
#

import threading
import array
import sys
import threading
import weakref
import array
import warnings

from .connection import Pipe
from threading import Lock, RLock, Semaphore, BoundedSemaphore
Expand All @@ -33,8 +34,8 @@

class DummyProcess(threading.Thread):

def __init__(self, group=None, target=None, name=None, args=(), kwargs=None):
threading.Thread.__init__(self, group, target, name, args, kwargs)
def __init__(self, group=None, target=None, name=None, args=(), kwargs=None, daemon=None):
threading.Thread.__init__(self, group, target, name, args, kwargs, daemon=daemon)
self._pid = None
self._children = weakref.WeakKeyDictionary()
self._start_called = False
Expand Down Expand Up @@ -119,7 +120,10 @@ def Manager():
def shutdown():
pass

def Pool(processes=None, initializer=None, initargs=()):
def Pool(processes=None, initializer=None, initargs=(), maxtasksperchild=None):
if maxtasksperchild is not None:
warnings.warn("maxtasksperchild makes no sense for a ThreadPool and is ignored")

from ..pool import ThreadPool
return ThreadPool(processes, initializer, initargs)

Expand Down
29 changes: 29 additions & 0 deletions Lib/test/test_multiprocessing_dummy.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import inspect
import multiprocessing
import unittest
from multiprocessing import dummy


class TestMultiprocessingDummy(unittest.TestCase):
def test_signatures(self):
"""Check that the signatures in multiprocessing.dummy match these of multiprocessing."""

common = set(dummy.__all__) & set(multiprocessing.__all__)

# Skip Locks (these have no parameters anyway)
common.remove("Lock")
common.remove("RLock")

for name in common:
print(name)

dummy_obj = getattr(dummy, name)
multiprocessing_obj = getattr(multiprocessing, name)

dummy_sig = inspect.signature(dummy_obj)
multiprocessing_sig = inspect.signature(multiprocessing_obj)

assert dummy_sig == multiprocessing_sig, f"{name}: {dummy_sig} != {multiprocessing_sig}"

if __name__ == '__main__':
unittest.main()
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add missing parameters to multiprocessing.dummy.DummyProcess and multiprocessing.dummy.Pool in order to match the API of multiprocessing.
Loading