Jean Boussier 63cbe3f6ac Proof of Concept: Allow to prevent fork from happening in known fork unsafe API
[Feature #20590]

For better of for worse, fork(2) remain the primary provider of
parallelism in Ruby programs. Even though it's frowned uppon in
many circles, and a lot of literature will simply state that only
async-signal safe APIs are safe to use after `fork()`, in practice
most APIs work well as long as you are careful about not forking
while another thread is holding a pthread mutex.

One of the APIs that is known cause fork safety issues is `getaddrinfo`.
If you fork while another thread is inside `getaddrinfo`, a mutex
may be left locked in the child, with no way to unlock it.

I think we could reduce the impact of these problem by preventing
in for the most notorious and common cases, by locking around
`fork(2)` and known unsafe APIs with a read-write lock.
2024-09-05 11:43:46 +02:00
..
2024-04-27 21:55:28 +09:00
2024-04-27 21:55:28 +09:00
2024-04-27 21:55:28 +09:00
2024-04-27 21:55:28 +09:00
2024-04-27 21:55:28 +09:00
2024-04-27 21:55:28 +09:00
2024-04-27 21:55:28 +09:00
2024-08-22 11:20:47 +09:00
2024-08-31 05:04:30 +00:00