Skip to content

Commit 4a417cf

Browse files
authored
REF: Release gil in is_range_indexer, is_sequence_range (#63038)
1 parent 942c56b commit 4a417cf

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

pandas/_libs/lib.pyx

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -655,16 +655,17 @@ def is_range_indexer(const int6432_t[:] left, Py_ssize_t n) -> bool:
655655
"""
656656
cdef:
657657
Py_ssize_t i
658+
bint ret = True
658659

659660
if left.size != n:
660661
return False
661662

662-
for i in range(n):
663-
664-
if left[i] != i:
665-
return False
666-
667-
return True
663+
with nogil:
664+
for i in range(n):
665+
if left[i] != i:
666+
ret = False
667+
break
668+
return ret
668669

669670

670671
@cython.wraparound(False)
@@ -676,17 +677,20 @@ def is_sequence_range(const int6432_t[:] sequence, int64_t step) -> bool:
676677
cdef:
677678
Py_ssize_t i, n = len(sequence)
678679
int6432_t first_element
680+
bint ret = True
679681

680682
if step == 0:
681683
return False
682684
if n == 0:
683685
return True
684686

685687
first_element = sequence[0]
686-
for i in range(1, n):
687-
if sequence[i] != first_element + i * step:
688-
return False
689-
return True
688+
with nogil:
689+
for i in range(1, n):
690+
if sequence[i] != first_element + i * step:
691+
ret = False
692+
break
693+
return ret
690694

691695

692696
ctypedef fused ndarr_object:

0 commit comments

Comments
 (0)