From cb2858af09521a572ba8d222f1d1b21324ab6f44 Mon Sep 17 00:00:00 2001 From: Matthias Benkard Date: Tue, 4 Mar 2008 16:59:42 +0100 Subject: Acquire the exception lock when returning from a callback. darcs-hash:f644e3e364ebb7bd2c81aa2c7f83a4887ac644d8 --- Lisp/method-definition.lisp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'Lisp/method-definition.lisp') diff --git a/Lisp/method-definition.lisp b/Lisp/method-definition.lisp index 0b41898..6df7feb 100644 --- a/Lisp/method-definition.lisp +++ b/Lisp/method-definition.lisp @@ -126,10 +126,12 @@ (print '(,(generic-function-name gf) ,@arguments)) (format t "~&~A" (list ,@arg-symbols))) - (,(generic-function-name gf) - ;; Leave the second argument (the - ;; selector) out. - ,@(list* (car arguments) (cddr arguments))))))) + (unwind-protect + (,(generic-function-name gf) + ;; Leave the second argument (the + ;; selector) out. + ,@(list* (car arguments) (cddr arguments))) + (%objcl-acquire-lock *objcl-current-exception-lock*)))))) (let ((callback (get-callback callback-name))) (with-foreign-object (arg-typestring-buffer :string (- (length arg-typestrings) 2)) -- cgit v1.2.3