@@ -81,6 +81,7 @@ _GetSemaphoreValue(HANDLE handle, long *value)
81
81
}
82
82
83
83
/*[clinic input]
84
+ @critical_section
84
85
_multiprocessing.SemLock.acquire
85
86
86
87
block as blocking: bool = True
@@ -92,7 +93,7 @@ Acquire the semaphore/lock.
92
93
static PyObject *
93
94
_multiprocessing_SemLock_acquire_impl (SemLockObject * self , int blocking ,
94
95
PyObject * timeout_obj )
95
- /*[clinic end generated code: output=f9998f0b6b0b0872 input=e5b45f5cbb775166 ]*/
96
+ /*[clinic end generated code: output=f9998f0b6b0b0872 input=079ca779975f3ad6 ]*/
96
97
{
97
98
double timeout ;
98
99
DWORD res , full_msecs , nhandles ;
@@ -172,14 +173,15 @@ _multiprocessing_SemLock_acquire_impl(SemLockObject *self, int blocking,
172
173
}
173
174
174
175
/*[clinic input]
176
+ @critical_section
175
177
_multiprocessing.SemLock.release
176
178
177
179
Release the semaphore/lock.
178
180
[clinic start generated code]*/
179
181
180
182
static PyObject *
181
183
_multiprocessing_SemLock_release_impl (SemLockObject * self )
182
- /*[clinic end generated code: output=b22f53ba96b0d1db input=ba7e63a961885d3d ]*/
184
+ /*[clinic end generated code: output=b22f53ba96b0d1db input=9bd62d3645e7a531 ]*/
183
185
{
184
186
if (self -> kind == RECURSIVE_MUTEX ) {
185
187
if (!ISMINE (self )) {
@@ -297,6 +299,7 @@ sem_timedwait_save(sem_t *sem, struct timespec *deadline, PyThreadState *_save)
297
299
#endif /* !HAVE_SEM_TIMEDWAIT */
298
300
299
301
/*[clinic input]
302
+ @critical_section
300
303
_multiprocessing.SemLock.acquire
301
304
302
305
block as blocking: bool = True
@@ -308,7 +311,7 @@ Acquire the semaphore/lock.
308
311
static PyObject *
309
312
_multiprocessing_SemLock_acquire_impl (SemLockObject * self , int blocking ,
310
313
PyObject * timeout_obj )
311
- /*[clinic end generated code: output=f9998f0b6b0b0872 input=e5b45f5cbb775166 ]*/
314
+ /*[clinic end generated code: output=f9998f0b6b0b0872 input=079ca779975f3ad6 ]*/
312
315
{
313
316
int res , err = 0 ;
314
317
struct timespec deadline = {0 };
@@ -382,14 +385,15 @@ _multiprocessing_SemLock_acquire_impl(SemLockObject *self, int blocking,
382
385
}
383
386
384
387
/*[clinic input]
388
+ @critical_section
385
389
_multiprocessing.SemLock.release
386
390
387
391
Release the semaphore/lock.
388
392
[clinic start generated code]*/
389
393
390
394
static PyObject *
391
395
_multiprocessing_SemLock_release_impl (SemLockObject * self )
392
- /*[clinic end generated code: output=b22f53ba96b0d1db input=ba7e63a961885d3d ]*/
396
+ /*[clinic end generated code: output=b22f53ba96b0d1db input=9bd62d3645e7a531 ]*/
393
397
{
394
398
if (self -> kind == RECURSIVE_MUTEX ) {
395
399
if (!ISMINE (self )) {
@@ -583,14 +587,15 @@ semlock_dealloc(SemLockObject* self)
583
587
}
584
588
585
589
/*[clinic input]
590
+ @critical_section
586
591
_multiprocessing.SemLock._count
587
592
588
593
Num of `acquire()`s minus num of `release()`s for this process.
589
594
[clinic start generated code]*/
590
595
591
596
static PyObject *
592
597
_multiprocessing_SemLock__count_impl (SemLockObject * self )
593
- /*[clinic end generated code: output=5ba8213900e517bb input=36fc59b1cd1025ab ]*/
598
+ /*[clinic end generated code: output=5ba8213900e517bb input=9fa6e0b321b16935 ]*/
594
599
{
595
600
return PyLong_FromLong ((long )self -> count );
596
601
}
0 commit comments