Skip to content

Commit

Permalink
Test if closing explicitly solves recursive lock issues (#13304)
Browse files Browse the repository at this point in the history
  • Loading branch information
danieldk committed Feb 5, 2024
1 parent 40422ff commit e1249d3
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions spacy/language.py
Original file line number Diff line number Diff line change
Expand Up @@ -1716,6 +1716,7 @@ def prepare_input(
# is done, so that they can exit gracefully.
for q in texts_q:
q.put(_WORK_DONE_SENTINEL)
q.close()

# Otherwise, we are stopping because the error handler raised an
# exception. The sentinel will be last to go out of the queue.
Expand Down Expand Up @@ -2347,7 +2348,8 @@ def _apply_pipes(

# Stop working if we encounter the end-of-work sentinel.
if isinstance(texts_with_ctx, _WorkDoneSentinel):
return
sender.close()
receiver.close()

docs = (
ensure_doc(doc_like, context) for doc_like, context in texts_with_ctx
Expand All @@ -2371,7 +2373,8 @@ def _apply_pipes(
# Parent has closed the pipe prematurely. This happens when a
# worker encounters an error and the error handler is set to
# stop processing.
return
sender.close()
receiver.close()


class _Sender:
Expand Down

0 comments on commit e1249d3

Please sign in to comment.