Skip to content
  • Duncan Coutts's avatar
    Move most of the delay# impl from cmm to C · 457705a8
    Duncan Coutts authored and Marge Bot's avatar Marge Bot committed
    Moves it into the IOManager.c where we can follow the new pattern of
    switching on the selected I/O manager.
    
    Uses a new IOManager API: syncDelay, following the naming convention of
    sync* for thread-synchronous I/O & timer/delay operations.
    
    As part of porting from cmm to C, we maintain the rule that the
    why_blocked gets accessed using load acquire and store release atomic
    memory operations. There was one exception to this rule: in the delay#
    primop cmm code on posix (not win32), the why_blocked was being updated
    using a store relaxed, not a store release. I've no idea why. In this
    convesion I'm playing it safe here and using store release consistently.
    457705a8