From: Eric Wong <normalperson@...> Date: 2018-01-27T09:39:41+00:00 Subject: [ruby-core:85155] Re: [Ruby trunk Misc#14222] Mutex.lock is not safe inside signal handler: what is? eregontp@gmail.com wrote: > I think that would be very helpful and help to discuss possible improvements. > Also explaining why Mutex is problematic (the signal handler can be run between any 2 lines of code, and Mutex is not re-entrant). > Can I assign this to you to create the document? Sure; quite a bit of work and yes, I'm noticing some ickiness along the way... Ugh, I still hate how big rb_io_t is and the presence of write_lock + rb_mutex_allow_trap does not make me comfortable(*) :< (Fortunately pipes and sockets default to IO#sync=true) I know some code uses Mutex#synchronize to cover a huge scope nowadays, but maybe disabling Signal.trap blocks from firing while any Mutex is locked gets rid of a huge chunk of problems (at the expensive of new ones) Or we could've had lock-free operations from the start and never had a Mutex class in the first place :> Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>