[#118346] [Ruby master Bug#20586] Some filesystem calls in dir.c are missing error handling and can return incorrect results if interrupted — "ivoanjo (Ivo Anjo) via ruby-core" <ruby-core@...>
Issue #20586 has been reported by ivoanjo (Ivo Anjo).
13 messages
2024/06/19
[ruby-core:118355] [Ruby master Bug#20462] Native threads are no longer reused
From:
"byroot (Jean Boussier) via ruby-core" <ruby-core@...>
Date:
2024-06-19 14:31:03 UTC
List:
ruby-core #118355
Issue #20462 has been updated by byroot (Jean Boussier).
> Not sure if related
It is. The thread cache was to reuse short lived thread and avoid all these allocations etc. Note however that it wasn't enabled on all platforms, so relying on it never really was a good idea.
----------------------------------------
Bug #20462: Native threads are no longer reused
https://bugs.ruby-lang.org/issues/20462#change-108861
* Author: tenderlovemaking (Aaron Patterson)
* Status: Open
* Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: UNKNOWN
----------------------------------------
Ruby used to reuse native threads in order to amortize the cost of making a pthread.
For example this program:
```ruby
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.
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/