-
Notifications
You must be signed in to change notification settings - Fork 165
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
kernel: add 'void * ref' to all GC mark functions (#5662)
This helps the Julia GC to pass along certain global state through marking functions to `MarkBag`, instead of needing to use global variables for that (which is not thread safe). For GASMAN and Boehm, this does nothing. The main downside is that it breaks kernel extensions defining custom marking functions. But as far as I can tell, that only affects `Semigroups`, for which I am confident we can get a patch in that will make it work with this while staying compatible with older kernel versions. Enabling this is why I've added #define GAP_MARK_FUNC_WITH_REF 1 to this PR: then one can add something like #ifdef GAP_MARK_FUNC_WITH_REF #define MarkBag(obj,ref) MarkBag(obj) #endif to code that needs to stay compatible with GAP versions before and after this patch.
- Loading branch information
Showing
14 changed files
with
121 additions
and
129 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.