logo       
Google Custom Search
    AddThis Social Bookmark Button
-->

cvs commit: fptools/ghc/rts Itimer.c: msg#00122

Subject: cvs commit: fptools/ghc/rts Itimer.c
simonmar    2003/12/22 08:27:11 PST

  Modified files:
    ghc/rts              Itimer.c 
  Log:
  Fix threaded RTS problem that is currently causing the conc007 test to
  loop indefinitely.  Comment from the source regarding this change:
  
  /* Major bogosity:
   *
   * In the threaded RTS, we can't set the virtual timer because the
   * thread which has the virtual timer might be sitting waiting for a
   * capability, and the virtual timer only ticks in CPU time.
   *
   * So, possible solutions:
   *
   * (1) tick in realtime.  Not very good, because this ticker is used for
   *     profiling, and this will give us unreliable time profiling
   *     results.  Furthermore, this requires picking a single OS thread
   *     to be the timekeeper, which is a bad idea because the thread in
   *     question might just be making a temporary call into Haskell land.
   *
   * (2) save/restore the virtual timer around excursions into STG land.
   *     Sounds great, but I tried it and the resolution of the virtual timer
   *     isn't good enough (on Linux) - most of our excursions fall
   *     within the timer's resolution and we never make any progress.
   *
   * (3) have a virtual timer in every OS thread.  Might be reasonable,
   *     because most of the time there is only ever one of these
   *     threads running, so it approximates a single virtual timer.
   *     But still quite bogus (and I got crashes when I tried this).
   *
   * For now, we're using (1), but this needs a better solution. --SDM
   */
  
  Revision  Changes    Path
  1.36      +44 -10    fptools/ghc/rts/Itimer.c


<Prev in Thread] Current Thread [Next in Thread>