Project

General

Profile

Bug #15315

ec_switch can still lose interrupts

Added by normalperson (Eric Wong) 5 months ago. Updated 5 months ago.

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

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

History

Updated by k0kubun (Takashi Kokubun) 5 months ago

1) will remain dangerous

Is this about Bug #15316?

Updated by normalperson (Eric Wong) 5 months ago

takashikkbn@gmail.com wrote:

1) will remain dangerous

Is this about Bug #15316?

Partially, yes (sorry, just (mostly) wrapped up Thread::Light
for review on Linux and unlikely to be online much due to
family stuff.

Also available in: Atom PDF