MCPcopy Create free account
hub / github.com/tox-dev/filelock / _pin_fork_objects

Function _pin_fork_objects

src/filelock/_api.py:1629–1649  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1627
1628
1629def _pin_fork_objects() -> None: # pragma: needs fork
1630 _ensure_current_process()
1631 thread_id = get_ident()
1632 with _FORK_STATE.gate:
1633 _FORK_STATE.fork_owner_depths[thread_id] = _FORK_STATE.fork_owner_depths.get(thread_id, 0) + 1
1634 _FORK_STATE.admission_closed = True
1635 while _FORK_STATE.active_transitions > len(_FORK_STATE.transitions.get(thread_id, ())):
1636 _FORK_STATE.gate.wait()
1637 transition_owners = tuple(_FORK_STATE.transitions.get(thread_id, {}).values())
1638 _verify_unverified_descriptors()
1639 owners = {id(owner): owner for owner in transition_owners if owner is not None}
1640 provisional_descriptor_tokens = tuple(
1641 starmap(
1642 _snapshot_descriptor_for_fork,
1643 (descriptor for owner in owners.values() for descriptor in owner._descriptors_for_fork()), # ruff:ignore[private-member-access] # snapshots each owner's own fork descriptors
1644 )
1645 )
1646 with _FORK_STATE.registry_lock:
1647 _FORK_STATE.provisional_descriptor_tokens.setdefault(thread_id, []).append(provisional_descriptor_tokens)
1648 _FORK_STATE.pinned_objects.setdefault(thread_id, []).append(tuple(_FORK_OBJECTS.values()))
1649 _FORK_STATE.pinned_classes.setdefault(thread_id, []).append(tuple(_FORK_CLASSES.values()))
1650
1651
1652def _resume_parent_after_fork() -> None: # pragma: needs fork

Callers

nothing calls this directly

Calls 3

_ensure_current_processFunction · 0.85
_descriptors_for_forkMethod · 0.45

Tested by

no test coverage detected