Skip to content

Commit 48c58f8

Browse files
remove ensure added
1 parent 0820a7d commit 48c58f8

File tree

4 files changed

+17
-36
lines changed

4 files changed

+17
-36
lines changed

Lib/test/test_capi/test_misc.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1564,20 +1564,18 @@ def callback():
15641564
if _testcapi._pending_threadfunc(callback):
15651565
break
15661566

1567-
def pendingcalls_submit(self, l, n, *, main=True, ensure=False):
1567+
def pendingcalls_submit(self, l, n, *, main=True):
15681568
def callback():
15691569
#this function can be interrupted by thread switching so let's
15701570
#use an atomic operation
15711571
l.append(None)
15721572

15731573
if main:
15741574
return _testcapi._pending_threadfunc(callback, n,
1575-
blocking=False,
1576-
ensure_added=ensure)
1575+
blocking=False)
15771576
else:
15781577
return _testinternalcapi.pending_threadfunc(callback, n,
1579-
blocking=False,
1580-
ensure_added=ensure)
1578+
blocking=False)
15811579

15821580
def pendingcalls_wait(self, l, numadded, context = None):
15831581
#now, stick around until l[0] has grown to 10
@@ -1676,7 +1674,7 @@ def test_max_pending(self):
16761674
self.assertEqual(added, maxpending)
16771675

16781676
l = []
1679-
added = self.pendingcalls_submit(l, maxpending+1, main=False)
1677+
added = self.pendingcalls_submit(l, 1000, main=False)
16801678
self.pendingcalls_wait(l, added)
16811679
self.assertEqual(added, maxpending)
16821680

Modules/_testcapimodule.c

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -837,14 +837,13 @@ static PyObject *
837837
pending_threadfunc(PyObject *self, PyObject *arg, PyObject *kwargs)
838838
{
839839
static char *kwlist[] = {"callback", "num",
840-
"blocking", "ensure_added", NULL};
840+
"blocking", NULL};
841841
PyObject *callable;
842842
unsigned int num = 1;
843843
int blocking = 0;
844-
int ensure_added = 0;
845844
if (!PyArg_ParseTupleAndKeywords(arg, kwargs,
846-
"O|I$pp:_pending_threadfunc", kwlist,
847-
&callable, &num, &blocking, &ensure_added))
845+
"O|I$p:_pending_threadfunc", kwlist,
846+
&callable, &num, &blocking))
848847
{
849848
return NULL;
850849
}
@@ -861,16 +860,8 @@ pending_threadfunc(PyObject *self, PyObject *arg, PyObject *kwargs)
861860

862861
unsigned int num_added = 0;
863862
for (; num_added < num; num_added++) {
864-
if (ensure_added) {
865-
int r;
866-
do {
867-
r = Py_AddPendingCall(&_pending_callback, callable);
868-
} while (r < 0);
869-
}
870-
else {
871-
if (Py_AddPendingCall(&_pending_callback, callable) < 0) {
872-
break;
873-
}
863+
if (Py_AddPendingCall(&_pending_callback, callable) < 0) {
864+
break;
874865
}
875866
}
876867

Modules/_testinternalcapi.c

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1074,10 +1074,10 @@ pending_threadfunc(PyObject *self, PyObject *args, PyObject *kwargs)
10741074
int blocking = 0;
10751075
int ensure_added = 0;
10761076
static char *kwlist[] = {"callback", "num",
1077-
"blocking", "ensure_added", NULL};
1077+
"blocking", NULL};
10781078
if (!PyArg_ParseTupleAndKeywords(args, kwargs,
1079-
"O|I$pp:pending_threadfunc", kwlist,
1080-
&callable, &num, &blocking, &ensure_added))
1079+
"O|I$p:pending_threadfunc", kwlist,
1080+
&callable, &num, &blocking))
10811081
{
10821082
return NULL;
10831083
}
@@ -1095,16 +1095,8 @@ pending_threadfunc(PyObject *self, PyObject *args, PyObject *kwargs)
10951095

10961096
unsigned int num_added = 0;
10971097
for (; num_added < num; num_added++) {
1098-
if (ensure_added) {
1099-
int r;
1100-
do {
1101-
r = _PyEval_AddPendingCall(interp, &_pending_callback, callable, 0);
1102-
} while (r < 0);
1103-
}
1104-
else {
1105-
if (_PyEval_AddPendingCall(interp, &_pending_callback, callable, 0) < 0) {
1106-
break;
1107-
}
1098+
if (_PyEval_AddPendingCall(interp, &_pending_callback, callable, 0) < 0) {
1099+
break;
11081100
}
11091101
}
11101102

Python/ceval_gil.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -753,7 +753,7 @@ pop_pending_call(struct _pending_calls *pending,
753753
*func = call->func;
754754
*arg = call->arg;
755755
*flags = call->flags;
756-
if (pending->freelist_num < _Py_PENDING_CALLS_FREELIST_SIZE) {
756+
if (pending->freelist_num <= _Py_PENDING_CALLS_FREELIST_SIZE) {
757757
call->next = pending->freelist;
758758
pending->freelist = call;
759759
pending->freelist_num++;
@@ -856,9 +856,9 @@ _make_pending_calls(struct _pending_calls *pending, int32_t *p_npending)
856856
{
857857
int res = 0;
858858
int32_t npending = -1;
859-
860859
int32_t maxloop = pending->maxloop;
861-
assert(maxloop > 0);
860+
861+
assert(maxloop == INT32_MAX || maxloop == 100);
862862
/* perform a bounded number of calls, in case of recursion */
863863
for (int i=0; i<maxloop; i++) {
864864
_Py_pending_call_func func = NULL;

0 commit comments

Comments
 (0)