-
Notifications
You must be signed in to change notification settings - Fork 160
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
Fix stack scanning for the Julia GC when GAP is used as a library. #3432
Fix stack scanning for the Julia GC when GAP is used as a library. #3432
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall, this solution looks good to me, thank you :).
I am actually kind of puzzled that we didn't had such a variable before, but I cannot find one, so I guess it is not there.
This seems to be very tightly related to issue #3089, except that you only solve a very special case of that here. |
The problem with
disappears after the changes from this pull request. Also in other examples, the effect that Julia freezes at some point disappears. |
5d4f392
to
2f39fcb
Compare
Codecov Report
@@ Coverage Diff @@
## master #3432 +/- ##
=========================================
Coverage ? 85.17%
=========================================
Files ? 699
Lines ? 346082
Branches ? 0
=========================================
Hits ? 294785
Misses ? 51297
Partials ? 0
|
2f39fcb
to
52bff6e
Compare
Fix stack scanning for the Julia GC when GAP is used as a library.
When GAP is being initialized from
GAP.jl
, we cannot useGapStackBottom
to figure out the start of the stack, but have to query Julia for it. Conversely, when GAP is the main program, we cannot rely on Julia knowing the start and end of the stack of the main thread.This pull request introduces a flag, called
UsingLibGap
, which allows us to distinguish between the two cases and then calculates the stack extent accordingly.Checklist for pull request reviewers
If your code contains kernel C code, run
clang-format
on it; thesimplest way is to use
git clang-format
, e.g. like this (don'tforget to commit the resulting changes):
usage of relevant labels
release notes: not needed
orrelease notes: to be added
bug
orenhancement
ornew feature
stable-4.X
add thebackport-to-4.X
labelbuild system
,documentation
,kernel
,library
,tests
runnable tests
adequate pull request title
well formulated text for release notes
relevant documentation updates
sensible comments in the code