Skip to content
  • Duncan Coutts's avatar
    Have the throwTo impl go via (new) IOManager APIs · f0c1f862
    Duncan Coutts authored and Marge Bot's avatar Marge Bot committed
    rather than directly operating on the IO manager's data structures.
    
    Specifically, when thowing an async exception to a thread that is
    blocked waiting for I/O or waiting for a timer, then we want to cancel
    that I/O waiting or cancel the timer. Currently this is done directly in
    removeFromQueues() in RaiseAsync.c. We want it to go via proper APIs
    both for modularity but also to let us support multiple I/O managers.
    
    So add sync{IO,Delay}Cancel, which is the cancellation for the
    corresponding sync{IO,Delay}. The implementations of these use the usual
    "switch (iomgr_type)" style.
    f0c1f862