Skip to content

Refactor caml_c_thread_(un)register to fix various bugs#12834

Merged
gasche merged 11 commits intoocaml:trunkfrom
gadmm:refactor_thread_register
Jan 12, 2024
Merged

Refactor caml_c_thread_(un)register to fix various bugs#12834
gasche merged 11 commits intoocaml:trunkfrom
gadmm:refactor_thread_register

Conversation

@gadmm
Copy link
Copy Markdown
Contributor

@gadmm gadmm commented Dec 15, 2023

Another systhread rabbit-hole: caml_c_thread_(un)register. In order to make it better understandable, I refactored it in order to share code with thread_new, thread_start and thread_stop. Differences between thread_new+thread_start and c_thread_register are subtle and come down to when is the GC available to allocate the thread descriptor. We could share even more code if we change a few details, I can share some idea if someone has the time to implement it.

I think several bugs are fixed by this refactor:

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

TSan-reported race in tests/parallel/test_c_thread_register.ml

5 participants