Skip to content
Snippets Groups Projects
Forked from Glasgow Haskell Compiler / GHC
11991 commits behind the upstream repository.
  • Duncan Coutts's avatar
    f0c1f862
    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
    History
    Have the throwTo impl go via (new) IOManager APIs
    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.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.