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
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ partial_splits_individual_tests = true
# on Windows, yet, add their files here.
exclude_on = ['win32', 'win32-github']
selector = [
"test_multiprocessing_graalpy.py", # import _winapi
"test_pathlib.py",
"test_posix.py", # import posix
"test_pyio.py", # pyio imports msvcrt
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@
from tests.util import needs_capi


POSIX_BACKEND_IS_JAVA = sys.implementation.name == "graalpy" and __graalpython__.posix_module_backend() == "java"


@unittest.skipUnless(sys.implementation.name == "graalpy" and sys.platform.startswith("linux"), "Linux GraalPy-specific test")
class EntropySubprocessTests(unittest.TestCase):
HASH_SECRET_BYTES = 24
Expand Down Expand Up @@ -180,6 +183,7 @@ def test_multiprocessing_process_import_does_not_use_initrandom(self):
"ok",
)

@unittest.skipIf(POSIX_BACKEND_IS_JAVA, "multiprocessing doesn't work on Java POSIX backend")
def test_multiprocessing_deliver_challenge_does_not_use_additional_initrandom(self):
self.assert_initrandom_bytes_used(
self.RANDOM_MODULE_BYTES,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2022, 2026, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# The Universal Permissive License (UPL), Version 1.0
Expand Down Expand Up @@ -42,16 +42,16 @@
import unittest


POSIX_BACKEND_IS_JAVA = sys.implementation.name == 'graalpy' and __graalpython__.posix_module_backend() == 'java'


@unittest.skipIf(POSIX_BACKEND_IS_JAVA, "multiprocessing doesn't work on emulated backend")
class MultiprocessingTest(unittest.TestCase):
@classmethod
def tearDownClass(cls):
import multiprocessing.resource_tracker
multiprocessing.resource_tracker._resource_tracker._stop()

@unittest.skipIf(
sys.implementation.name == 'graalpy' and __graalpython__.posix_module_backend() == 'java',
reason="TODO multiprocessing.Array doesn't work on emulated backend",
)
def test_array_read(self):
# This used to be buggy due to wrong usage of memoryview offsets when two objects were allocated in the same block
# Don't remove the unused value on the next line
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,6 @@
"graalpython/com.oracle.graal.python.test/src/tests/test_module_property.py": 0.01,
"graalpython/com.oracle.graal.python.test/src/tests/test_mro.py": 0.03,
"graalpython/com.oracle.graal.python.test/src/tests/test_multiprocessing.py": 0.2,
"graalpython/com.oracle.graal.python.test/src/tests/test_multiprocessing_graalpy.py": 9.08,
"graalpython/com.oracle.graal.python.test/src/tests/test_nonlocal.py": 0.0,
"graalpython/com.oracle.graal.python.test/src/tests/test_object.py": 0.0,
"graalpython/com.oracle.graal.python.test/src/tests/test_operator.py": 0.01,
Expand Down Expand Up @@ -233,4 +232,4 @@
"graalpython/com.oracle.graal.python.test/src/tests/test_yield_from.py": 0.03,
"graalpython/com.oracle.graal.python.test/src/tests/test_zipimport.py": 0.05,
"graalpython/com.oracle.graal.python.test/src/tests/test_zlib.py": 0.02
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,6 @@
"graalpython/com.oracle.graal.python.test/src/tests/test_module_property.py": 0.07999999999999999,
"graalpython/com.oracle.graal.python.test/src/tests/test_mro.py": 0.0,
"graalpython/com.oracle.graal.python.test/src/tests/test_multiprocessing.py": 0.36,
"graalpython/com.oracle.graal.python.test/src/tests/test_multiprocessing_graalpy.py": 9.059999999999999,
"graalpython/com.oracle.graal.python.test/src/tests/test_nonlocal.py": 0.0,
"graalpython/com.oracle.graal.python.test/src/tests/test_object.py": 0.0,
"graalpython/com.oracle.graal.python.test/src/tests/test_operator.py": 0.0,
Expand Down Expand Up @@ -236,4 +235,4 @@
"graalpython/com.oracle.graal.python.test/src/tests/test_yield_from.py": 0.01,
"graalpython/com.oracle.graal.python.test/src/tests/test_zipimport.py": 0.060000000000000005,
"graalpython/com.oracle.graal.python.test/src/tests/test_zlib.py": 0.03
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@
import java.util.Map;
import java.util.WeakHashMap;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Semaphore;
import java.util.logging.Level;

import org.graalvm.collections.EconomicMap;
Expand Down Expand Up @@ -343,20 +342,6 @@ public boolean isSingleContext() {
@CompilationFinal(dimensions = 1) public static final PythonAbstractObject[] CONTEXT_INSENSITIVE_SINGLETONS = new PythonAbstractObject[]{PNone.NONE, PEllipsis.INSTANCE,
PNotImplemented.NOT_IMPLEMENTED};

/**
* Named semaphores are shared between all processes in a system, and they persist until the
* system is shut down, unless explicitly removed. We interpret this as meaning they all exist
* globally per language instance, that is, they are shared between different Contexts in the
* same engine.
*
* Top level contexts use this map to initialize their shared multiprocessing data. Inner
* children contexts created for the multiprocessing module ignore this map in
* {@link PythonLanguage} and instead inherit it in the shared multiprocessing data from their
* parent context. This way, the child inner contexts do not have to run in the same engine
* (have the same language instance), but can still share the named semaphores.
*/
public final ConcurrentHashMap<TruffleString, Semaphore> namedSemaphores = new ConcurrentHashMap<>();

@CompilationFinal(dimensions = 1) private volatile Object[] engineOptionsStorage;
@CompilationFinal private volatile OptionValues engineOptions;
@CompilationFinal private boolean useNativePrimitiveStorage;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -195,8 +195,6 @@
import com.oracle.graal.python.builtins.modules.lzma.LZMACompressorBuiltins;
import com.oracle.graal.python.builtins.modules.lzma.LZMADecompressorBuiltins;
import com.oracle.graal.python.builtins.modules.lzma.LZMAModuleBuiltins;
import com.oracle.graal.python.builtins.modules.multiprocessing.GraalPySemLockBuiltins;
import com.oracle.graal.python.builtins.modules.multiprocessing.MultiprocessingGraalPyModuleBuiltins;
import com.oracle.graal.python.builtins.modules.multiprocessing.MultiprocessingModuleBuiltins;
import com.oracle.graal.python.builtins.modules.multiprocessing.SemLockBuiltins;
import com.oracle.graal.python.builtins.modules.pickle.PickleBufferBuiltins;
Expand Down Expand Up @@ -765,8 +763,6 @@ private static PythonBuiltins[] initializeBuiltins(TruffleLanguage.Env env) {
// _multiprocessing
PythonImageBuildOptions.WITHOUT_NATIVE_POSIX ? null : new MultiprocessingModuleBuiltins(),
PythonImageBuildOptions.WITHOUT_NATIVE_POSIX ? null : new SemLockBuiltins(),
new MultiprocessingGraalPyModuleBuiltins(),
new GraalPySemLockBuiltins(),

new WarningsModuleBuiltins(),
new GraalPythonModuleBuiltins(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,6 @@
import com.oracle.graal.python.builtins.modules.lsprof.ProfilerBuiltins;
import com.oracle.graal.python.builtins.modules.lzma.LZMACompressorBuiltins;
import com.oracle.graal.python.builtins.modules.lzma.LZMADecompressorBuiltins;
import com.oracle.graal.python.builtins.modules.multiprocessing.GraalPySemLockBuiltins;
import com.oracle.graal.python.builtins.modules.multiprocessing.SemLockBuiltins;
import com.oracle.graal.python.builtins.modules.pickle.PickleBufferBuiltins;
import com.oracle.graal.python.builtins.modules.pickle.PicklerBuiltins;
Expand Down Expand Up @@ -635,7 +634,6 @@ passed as positional arguments to zip(). The i-th element in every tuple
PLock("LockType", PythonObject, newBuilder().publishInModule(J__THREAD).disallowInstantiation().slots(CommonLockBuiltins.SLOTS, LockTypeBuiltins.SLOTS)),
PRLock("RLock", PythonObject, newBuilder().publishInModule(J__THREAD).basetype().slots(CommonLockBuiltins.SLOTS, RLockBuiltins.SLOTS)),
PSemLock("SemLock", PythonObject, newBuilder().publishInModule("_multiprocessing").basetype().slots(SemLockBuiltins.SLOTS)),
PGraalPySemLock("SemLock", PythonObject, newBuilder().publishInModule("_multiprocessing_graalpy").basetype().slots(GraalPySemLockBuiltins.SLOTS)),
PSocket("socket", PythonObject, newBuilder().publishInModule(J__SOCKET).basetype().slots(SocketBuiltins.SLOTS)),
PStaticmethod("staticmethod", PythonObject, newBuilder().publishInModule(J_BUILTINS).basetype().addDict(24).slots(StaticmethodBuiltins.SLOTS).doc("""
staticmethod(function) -> method
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -887,9 +887,6 @@ static PNone close(VirtualFrame frame, int fd,
@Cached GilNode gil,
@Cached PConstructAndRaiseNode.Lazy constructAndRaiseNode) {
try {
if (context.getSharedMultiprocessingData().decrementFDRefCount(fd)) {
return PNone.NONE;
}
gil.release(true);
try {
posixLib.close(context.getPosixSupport(), fd);
Expand Down
Loading
Loading