X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fforeign.lisp;h=a735e7646fccdcae00bb506c6b0a0ae3c2a3bfe9;hb=d720bc359f03734ccb9baf66cb45dc01d623f369;hp=8c32729a9f935da63effb445d56688e08807f562;hpb=3397c1325c8918fe7f187673ff33e469158955e0;p=sbcl.git diff --git a/src/code/foreign.lisp b/src/code/foreign.lisp index 8c32729..a735e76 100644 --- a/src/code/foreign.lisp +++ b/src/code/foreign.lisp @@ -139,7 +139,10 @@ if the symbol isn't found." (symbol-address unsigned))) (dladdr (function unsigned unsigned (* (struct dl-info))) :extern "dladdr")) - (let ((err (alien-funcall dladdr addr (addr info)))) + (let ((err (without-gcing + ;; On eg. Darwin GC can could otherwise interrupt + ;; the call while dladdr is holding a lock. + (alien-funcall dladdr addr (addr info))))) (if (zerop err) nil (slot info 'symbol))))