Skip to content
  • Nikodemus Siivola's avatar
    sbcl: workaround for auto-flush thread deadlocks, take II · 72594e3d
    Nikodemus Siivola authored
      Occasionally auto-flush thread could deadlock with a thread doing
      compilation:
    
        T1: grabs world-lock
        T2: decides to flush, grabs stream lock
        T1: needs to do output (compiler note, etc), waits on the stream lock
        T2: needs the world-lock for a while (PCL dispatch machinery setup, etc)
    
        *boink*
    
      This is an SBCL issue, no mistake about it -- but sorting out the world-lock
      handling is going to take a while, and sticking a deadline around the
      FINISH-OUTPUT call avoids the issue.
    
      In this iteration the change is limited to swank-sbcl.lisp, making it
      hopefully non-intrusive enough to stay in.
    72594e3d