Project

General

Profile

Actions

Bug #15315

open

ec_switch can still lose interrupts

Added by normalperson (Eric Wong) almost 3 years ago. Updated almost 3 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