Actions
Bug #20462
openNative threads are no longer reused
Bug #20462:
Native threads are no longer reused
Description
Ruby used to reuse native threads in order to amortize the cost of making a pthread.
For example this program:
ntids = 1000.times.map {
Thread.new {
Thread.current.native_thread_id
}.value
}
p ntids.uniq.length
With Ruby 3.2.0, this would return 1. With Ruby 3.3.x, it returns 1000. It means we cannot amortize the cost of a pthread for short lived threads.
I was able to bisect this to commit be1bbd5b7d40ad863ab35097765d3754726bbd54. But the change is big so I don't know how to fix it.
Actions