Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitdb098a4

Browse files
authored
gh-133146: Add the old publicget_value method to documentation and refactor code. (GH-133301)
also uses it within the internals in a few places.
1 parentf2ca158 commitdb098a4

File tree

3 files changed

+20
-5
lines changed

3 files changed

+20
-5
lines changed

‎Doc/library/multiprocessing.rst‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1577,12 +1577,22 @@ object -- see :ref:`multiprocessing-managers`.
15771577
A solitary difference from its close analog exists: its ``acquire`` method's
15781578
first argument is named *block*, as is consistent with:meth:`Lock.acquire`.
15791579

1580+
1581+
..method::get_value()
1582+
1583+
Return the current value of semaphore.
1584+
1585+
Note that this may raise:exc:`NotImplementedError` on platforms like
1586+
macOS where ``sem_getvalue()`` is not implemented.
1587+
1588+
15801589
..method::locked()
15811590

15821591
Return a boolean indicating whether this object is locked right now.
15831592

15841593
..versionadded::3.14
15851594

1595+
15861596
..note::
15871597

15881598
On macOS, ``sem_timedwait`` is unsupported, so calling ``acquire()`` with

‎Lib/multiprocessing/queues.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ def get(self, block=True, timeout=None):
121121

122122
defqsize(self):
123123
# Raises NotImplementedError on Mac OSX because of broken sem_getvalue()
124-
returnself._maxsize-self._sem._semlock._get_value()
124+
returnself._maxsize-self._sem.get_value()
125125

126126
defempty(self):
127127
returnnotself._poll()

‎Lib/multiprocessing/synchronize.py‎

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,11 +135,16 @@ def __init__(self, value=1, *, ctx):
135135
SemLock.__init__(self,SEMAPHORE,value,SEM_VALUE_MAX,ctx=ctx)
136136

137137
defget_value(self):
138+
'''Returns current value of Semaphore.
139+
140+
Raises NotImplementedError on Mac OSX
141+
because of broken sem_getvalue().
142+
'''
138143
returnself._semlock._get_value()
139144

140145
def__repr__(self):
141146
try:
142-
value=self._semlock._get_value()
147+
value=self.get_value()
143148
exceptException:
144149
value='unknown'
145150
return'<%s(value=%s)>'% (self.__class__.__name__,value)
@@ -155,7 +160,7 @@ def __init__(self, value=1, *, ctx):
155160

156161
def__repr__(self):
157162
try:
158-
value=self._semlock._get_value()
163+
value=self.get_value()
159164
exceptException:
160165
value='unknown'
161166
return'<%s(value=%s, maxvalue=%s)>'% \
@@ -247,8 +252,8 @@ def _make_methods(self):
247252

248253
def__repr__(self):
249254
try:
250-
num_waiters= (self._sleeping_count._semlock._get_value()-
251-
self._woken_count._semlock._get_value())
255+
num_waiters= (self._sleeping_count.get_value()-
256+
self._woken_count.get_value())
252257
exceptException:
253258
num_waiters='unknown'
254259
return'<%s(%s, %s)>'% (self.__class__.__name__,self._lock,num_waiters)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp