Issue #22098 has been updated by byroot (Jean Boussier). I don't think I understand the bug, but:
change the documentation to be clear that the GVL is not held.
This I really don't understand. Are you saying the GVL isn't held when `THREAD_EVENT_RESUMED` triggers? That would really surprise me. The main use case for this event is to measure how long it took to acquire the GVL, as such it MUST be called after the GVL held. ---------------------------------------- Bug #22098: Reconsider whether THREAD_EVENT_RESUMED runs with GVL held https://bugs.ruby-lang.org/issues/22098#change-117513 * Author: luke-gru (Luke Gruber) * Status: Open * Assignee: luke-gru (Luke Gruber) * Backport: 3.3: UNKNOWN, 3.4: UNKNOWN, 4.0: UNKNOWN ---------------------------------------- Today, it's possible to get a deadlock when allocating during a hook for this event. I attached a reproduction script using the `gvltools` gem. One way to fix it would be to not allocate during this hook and change the documentation to be clear that the GVL is not held. Any gems relying on this behavior, like `gvltools`, would need to be patched. Another way to approach it would be to change the call site for this hook invocation. I believe it would need to be added to quite a few places. To maintain Ractor safety, it would also need to be invoked without any locks held. I'm curious about your thoughts @byroot. ---Files-------------------------------- repro.rb (3.11 KB) run_loop.sh (2.82 KB) -- https://bugs.ruby-lang.org/