Skip to content

Commit 9a944d3

Browse files
committed
finer grained locking for multiprocessing._select
1 parent 648ee4e commit 9a944d3

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/MultiprocessingModuleBuiltins.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -361,18 +361,18 @@ Object doGeneric(VirtualFrame frame, Object rlist,
361361
@Cached GilNode gil) {
362362
ArrayBuilder<Integer> notEmpty = new ArrayBuilder<>();
363363
SharedMultiprocessingData sharedData = getContext().getSharedMultiprocessingData();
364-
gil.release(true);
365-
try {
366-
PSequence pSequence = constructListNode.execute(frame, rlist);
367-
for (int i = 0; i < sizeNode.execute(frame, pSequence); i++) {
368-
Object pythonObject = callGetItemNode.executeObject(frame, pSequence, i);
369-
int fd = toInt(castToJava, pythonObject);
364+
PSequence pSequence = constructListNode.execute(frame, rlist);
365+
for (int i = 0; i < sizeNode.execute(frame, pSequence); i++) {
366+
Object pythonObject = callGetItemNode.executeObject(frame, pSequence, i);
367+
int fd = toInt(castToJava, pythonObject);
368+
gil.release(true);
369+
try {
370370
if (!sharedData.isBlocking(fd)) {
371371
notEmpty.add(fd);
372372
}
373+
} finally {
374+
gil.acquire();
373375
}
374-
} finally {
375-
gil.acquire();
376376
}
377377
return factory().createList(notEmpty.toObjectArray(new Object[0]));
378378
}

0 commit comments

Comments
 (0)