Skip to content
  • Koichi Sasada's avatar
    caac5f77
    make monitor.so for performance. (#2576) · caac5f77
    Koichi Sasada authored
    Recent monitor.rb has performance problem because of interrupt
    handlers. 'Monitor#synchronize' is frequently used primitive
    so the performance of this method is important.
    
    This patch rewrite 'monitor.rb' with 'monitor.so' (C-extension)
    and make it faster. See [Feature #16255] for details.
    
    Monitor class objects are normal object which include MonitorMixin.
    This patch introduce a Monitor class which is implemented on C
    and MonitorMixin uses Monitor object as re-entrant (recursive)
    Mutex. This technique improve performance because we don't need
    to care atomicity and we don't need accesses to instance variables
    any more on Monitor class.
    caac5f77
    make monitor.so for performance. (#2576)
    Koichi Sasada authored
    Recent monitor.rb has performance problem because of interrupt
    handlers. 'Monitor#synchronize' is frequently used primitive
    so the performance of this method is important.
    
    This patch rewrite 'monitor.rb' with 'monitor.so' (C-extension)
    and make it faster. See [Feature #16255] for details.
    
    Monitor class objects are normal object which include MonitorMixin.
    This patch introduce a Monitor class which is implemented on C
    and MonitorMixin uses Monitor object as re-entrant (recursive)
    Mutex. This technique improve performance because we don't need
    to care atomicity and we don't need accesses to instance variables
    any more on Monitor class.
Loading