-
Notifications
You must be signed in to change notification settings - Fork 111
Open
Description
From: #281 (comment)
It looks like this happens because the thread is deleted by DLLMain
https://github.com/ivmai/bdwgc/blob/2558568aceaf7fc5cc64cf87e244cbcfd7f9bd53/win32_threads.c#L3009
Somehow this happens at the same time as the
GC_gcollectcall withinneko_gc_major()while neko is shutting down, which also tries to access the same thread to suspend it.
Can be reproduced by running this program repeatedly:
function main() {
final lock = new sys.thread.Lock();
sys.thread.Thread.create(function() {
lock.release();
});
lock.wait();
}Here is a minimal sample. For this to reproduce the following conditions must be met:
- App must contain thread
- Thread must complete before the main thread
- DllMain call for detaching thread must be interleaved with a GC_gcollect call in
neko_gc_major()
See: bdwgc/bdwgc#704
Metadata
Metadata
Assignees
Labels
No labels