summaryrefslogtreecommitdiff
path: root/test/-ext-/thread/test_lock_native_thread.rb
AgeCommit message (Collapse)Author
2025-11-14Skip tests in TestThreadLockNativeThread when using LSANPeter Zhu
These tests use NM threads but NT is not freed for MN thread, causing it to be reported as memory leaks in LSAN. For example: #1 0x62ee7bc67e99 in calloc1 gc/default/default.c:1495:12 #2 0x62ee7bc7ba00 in rb_gc_impl_calloc gc/default/default.c:8216:5 #3 0x62ee7bc631d1 in ruby_xcalloc_body gc.c:5221:12 #4 0x62ee7bc5cdbc in ruby_xcalloc gc.c:5215:34 #5 0x62ee7bdea4c6 in native_thread_alloc thread_pthread.c:2187:35 #6 0x62ee7bdec31b in native_thread_check_and_create_shared thread_pthread_mn.c:429:39 #7 0x62ee7bdea484 in native_thread_create_shared thread_pthread_mn.c:531:12 #8 0x62ee7bdea1da in native_thread_create thread_pthread.c:2403:16 #9 0x62ee7bdde2eb in thread_create_core thread.c:884:11 #10 0x62ee7bde4466 in thread_initialize thread.c:992:16
2024-02-21`rb_thread_lock_native_thread()`Koichi Sasada
Introduce `rb_thread_lock_native_thread()` to allocate dedicated native thread to the current Ruby thread for M:N threads. This C API is similar to Go's `runtime.LockOSThread()`. Accepted at https://github.com/ruby/dev-meeting-log/blob/master/2023/DevMeeting-2023-08-24.md (and missed to implement on Ruby 3.3.0)