Skip to content
Snippets Groups Projects
  1. Mar 15, 2010
  2. Mar 14, 2010
  3. Mar 13, 2010
  4. Mar 11, 2010
    • Simon Marlow's avatar
    • Simon Marlow's avatar
      Use message-passing to implement throwTo in the RTS · 7408b392
      Simon Marlow authored
      This replaces some complicated locking schemes with message-passing
      in the implementation of throwTo. The benefits are
      
       - previously it was impossible to guarantee that a throwTo from
         a thread running on one CPU to a thread running on another CPU
         would be noticed, and we had to rely on the GC to pick up these
         forgotten exceptions. This no longer happens.
      
       - the locking regime is simpler (though the code is about the same
         size)
      
       - threads can be unblocked from a blocked_exceptions queue without
         having to traverse the whole queue now.  It's a rare case, but
         replaces an O(n) operation with an O(1).
      
       - generally we move in the direction of sharing less between
         Capabilities (aka HECs), which will become important with other
         changes we have planned.
      
      Also in this patch I replaced several STM-specific closure types with
      a generic MUT_PRIM closure type, which allowed a lot of code in the GC
      and other places to go away, hence the line-count reduction.  The
      message-passing changes resulted in about a net zero line-count
      difference.
      7408b392
    • Simon Marlow's avatar
      12cfec94
  5. Nov 23, 2009
  6. Mar 09, 2010
  7. Mar 05, 2010
  8. Mar 04, 2010
  9. Mar 03, 2010
  10. Mar 02, 2010
Loading