Permalink
Browse files

* swank-sbcl.lisp (stream-force-output): Use with-world-lock

i.e. with-recursive-lock instead of with-mutex.
* slime.el (sbcl-world-lock): New test.
  • Loading branch information...
Helmut Eller
Helmut Eller committed May 11, 2012
1 parent 27021b3 commit 996cb2a2000958855cdb9cf7f6c92cd07d56f4c9
Showing with 19 additions and 2 deletions.
  1. +6 −0 ChangeLog
  2. +12 −1 slime.el
  3. +1 −1 swank-sbcl.lisp
View
@@ -1,3 +1,9 @@
+2012-05-11 Helmut Eller <heller@common-lisp.net>
+
+ * swank-sbcl.lisp (stream-force-output): Use with-world-lock
+ i.e. with-recursive-lock instead of with-mutex.
+ * slime.el (sbcl-world-lock): New test.
+
2012-05-11 Helmut Eller <heller@common-lisp.net>
* swank-sbcl.lisp (stream-force-output): Don't use
View
@@ -8523,7 +8523,18 @@ CONTINUES ... how often the continue restart should be invoked"
(slime-check "Debugger closed" (slime-sldb-level= nil)))
(slime-sync-to-top-level 8))
-;;; FIXME: reconnection is broken since the recent io-redirection changes.
+(def-slime-test sbcl-world-lock
+ (n delay)
+ "Print something inside WITH-COMPILATION-UNIT.
+In SBCL, WITH-COMPILATION-UNIT grabs the world lock and this tests that
+we can grab it recursivly."
+ '((10 0.03))
+ (slime-test-expect "no error"
+ t
+ (slime-eval `(cl:with-compilation-unit ()
+ (swank:flow-control-test ,n ,delay)
+ t))))
+
(def-slime-test (disconnect-one-connection (:style :spawn)) ()
"`slime-disconnect' should disconnect only the current connection"
'(())
View
@@ -1693,7 +1693,7 @@ stack."
(defclass slime-output-stream (fundamental-character-output-stream)
())
(defmethod stream-force-output :around ((stream slime-output-stream))
- (sb-thread:with-mutex (sb-c::**world-lock** :wait-p nil)
+ (sb-kernel:with-world-lock ()
(call-next-method)))
)

0 comments on commit 996cb2a

Please sign in to comment.