Skip to content

Commit

Permalink
Cleanup multiprocessing comment and unusual import error message (#12…
Browse files Browse the repository at this point in the history
…6532)

Define constants as constants rather than calling `list(range(2))`.
Explain which values must remain in sync via comments.
  • Loading branch information
gpshead authored Nov 7, 2024
1 parent dbb6e22 commit d46d3f2
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 8 deletions.
15 changes: 7 additions & 8 deletions Lib/multiprocessing/synchronize.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,22 +21,21 @@
from . import process
from . import util

# Try to import the mp.synchronize module cleanly, if it fails
# raise ImportError for platforms lacking a working sem_open implementation.
# See issue 3770
# TODO: Do any platforms still lack a functioning sem_open?
try:
from _multiprocessing import SemLock, sem_unlink
except (ImportError):
except ImportError:
raise ImportError("This platform lacks a functioning sem_open" +
" implementation, therefore, the required" +
" synchronization primitives needed will not" +
" function, see issue 3770.")
" implementation. https://github.com/python/cpython/issues/48020.")

#
# Constants
#

RECURSIVE_MUTEX, SEMAPHORE = list(range(2))
# These match the enum in Modules/_multiprocessing/semaphore.c
RECURSIVE_MUTEX = 0
SEMAPHORE = 1

SEM_VALUE_MAX = _multiprocessing.SemLock.SEM_VALUE_MAX

#
Expand Down
1 change: 1 addition & 0 deletions Modules/_multiprocessing/semaphore.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

#ifdef HAVE_MP_SEMAPHORE

// These match the values in Lib/multiprocessing/synchronize.py
enum { RECURSIVE_MUTEX, SEMAPHORE };

typedef struct {
Expand Down

0 comments on commit d46d3f2

Please sign in to comment.