Skip to content
  • Koichi Sasada's avatar
    1e8abe5d
    introduce USE_VM_CLOCK for windows. · 1e8abe5d
    Koichi Sasada authored
    The timer function used on windows system set timer interrupt
    flag of current main ractor's executing ec and thread can detect
    the end of time slice. However, to set all ec->interrupt_flag for
    all running ractors, it is requires to synchronize with other ractors.
    However, timer thread can not acquire the ractor-wide lock because
    of some limitation.
    
    To solve this issue, this patch introduces USE_VM_CLOCK compile option
    to introduce rb_vm_t::clock. This clock will be incremented by the
    timer thread and each thread can check the incrementing by comparison
    with previous checked clock. At last, on windows platform this patch
    introduces some overhead, but I think there is no critical performance
    issue because of this modification.
    1e8abe5d
    introduce USE_VM_CLOCK for windows.
    Koichi Sasada authored
    The timer function used on windows system set timer interrupt
    flag of current main ractor's executing ec and thread can detect
    the end of time slice. However, to set all ec->interrupt_flag for
    all running ractors, it is requires to synchronize with other ractors.
    However, timer thread can not acquire the ractor-wide lock because
    of some limitation.
    
    To solve this issue, this patch introduces USE_VM_CLOCK compile option
    to introduce rb_vm_t::clock. This clock will be incremented by the
    timer thread and each thread can check the incrementing by comparison
    with previous checked clock. At last, on windows platform this patch
    introduces some overhead, but I think there is no critical performance
    issue because of this modification.
Loading