Project

General

Profile

Actions

Bug #15315

open

ec_switch can still lose interrupts

Added by normalperson (Eric Wong) almost 4 years ago. Updated almost 4 years ago.

Status:
Open
Priority:
Normal
Target version:
-
[ruby-core:89847]
Tags:

Description

ec_switch and thread switching may still lose interrupts

trap interrupt is OK because of r64062

Not OK:

  1. postponed job interrupt from MJIT worker
    This is trickiest to solve because it also affects thread switching,
    not just EC switching

  2. pending interrupt is not safe but fixing ec_switch is sufficient because
    rb_threadptr_interrupt only targets threads, not EC.

  3. timer interrupt is not critical because another interrupt will fire in 100ms

Solutions:

moving interrupt_flag back to rb_thread_t will solve 2 and 3

  1. will remain dangerous, we need to add extra checks at thread switching
    because MJIT worker may get stuck if target thread stalls or dies.

Files

Actions

Also available in: Atom PDF