Commit graph

7 commits

Author SHA1 Message Date
Robert Hensing
46054f932b Update boehmgc-coroutine-sp-fallback.diff 2023-01-24 15:11:55 +01:00
Robert Hensing
0664ba0a67 Revert "fixup: remove boehmgc patch"
It is still necessary.
Please do your research, or f ask the author, which happens to be me.

An evaluator like this is not an environment where "it compiles, so
it works" will ever hold.

This reverts commit 1c40182b12.
2023-01-24 14:39:45 +01:00
Linus Heckemann
1c40182b12 fixup: remove boehmgc patch 2022-12-19 13:35:05 +01:00
Matthew Bauer
f4d7208e23 Update boehmgc-coroutine-sp-fallback.diff for darwin
The darwin_stop_world implementation is slightly different. sp goes to
altstack_lo instead of lo in this case. Assuming that is an
implementation detail.

But the fix is the same, when we detect alstack_lo outside of the
expected stack range, we reset it to hi - stack_limit.

Here stack_limit is calculated with pthread_get_stacksize_np since
that is the BSD equivalent to pthread_attr_getstacksize.
2022-09-01 11:48:50 -05:00
Moritz Hedtke
6f291ed718
Fix leaking pthread_attr_t
pthread_attr_destroy was not called.
2021-11-03 22:54:16 +01:00
Robert Hensing
5c58d84a76 boehmgc: Remove unused code from patch 2021-06-25 17:45:48 +02:00
Robert Hensing
57409244ec boehmgc: Crude support for coroutines
Fixes the problem where a stack pointer outside the original
thread causes the collector to crash.

It could be made more accurate by recording the stack pointer
every time we switch to a coroutine. We can use this information
to update our own coroutine stacks like normal data. When the
stack pointer is on a thread, we can add a field to GC_thread
"fallback_sp" to be used when the thread sp is outside the original
thread range.
2021-06-24 18:17:03 +02:00