Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backport: drop require lock when not needed during loading to allow parallel pr… #195

Closed
wants to merge 1 commit into from

Conversation

kpamnany
Copy link
Collaborator

@kpamnany kpamnany commented Nov 4, 2024

PR Description

…ecompile loading (JuliaLang#56291)

Fixes _require_search_from_serialized to first acquire all start_loading locks (using a deadlock-free batch-locking algorithm) before doing stalechecks and the rest, so that all the global computations happen behind the require_lock, then the rest can happen behind module-specific locks, then (as before) extensions can be loaded in parallel eventually after require returns.

Checklist

Requirements for merging:

  • I have opened an issue or PR upstream on JuliaLang/julia: <link to JuliaLang/julia>
  • I have removed the port-to-* labels that don't apply.
  • I have opened a PR on raicode to test these changes:

…ecompile loading (JuliaLang#56291)

Fixes `_require_search_from_serialized` to first acquire all
start_loading locks (using a deadlock-free batch-locking algorithm)
before doing stalechecks and the rest, so that all the global
computations happen behind the require_lock, then the rest can happen
behind module-specific locks, then (as before) extensions can be loaded
in parallel eventually after `require` returns.
@github-actions github-actions bot added port-to-v1.10 This change should apply to Julia v1.10 builds port-to-master This change should apply to all future Julia builds labels Nov 4, 2024
@kpamnany kpamnany removed the port-to-master This change should apply to all future Julia builds label Nov 4, 2024
@kpamnany
Copy link
Collaborator Author

kpamnany commented Nov 5, 2024

Per upstream review, this is not backportable to 1.10 -- there will be too many data races and bugs in the loading process prior to 1.12 (might be possible to backport to 1.11).

@kpamnany kpamnany closed this Nov 5, 2024
@kpamnany kpamnany deleted the kp-backport-56291 branch December 30, 2024 16:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
port-to-v1.10 This change should apply to Julia v1.10 builds
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants