From 908433009eb9b037f88b17075a58bf4f5bd394a8 Mon Sep 17 00:00:00 2001 From: Gabor Melis Date: Fri, 12 Aug 2005 19:19:42 +0000 Subject: [PATCH] 0.9.3.50: * put back WITH-PINNED-OBJECTS into INTERRUPT-THREAD and kill some really rare memory faults --- src/code/target-thread.lisp | 13 ++++++++----- version.lisp-expr | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/code/target-thread.lisp b/src/code/target-thread.lisp index e24efa0..da38ee8 100644 --- a/src/code/target-thread.lisp +++ b/src/code/target-thread.lisp @@ -551,11 +551,14 @@ won't like the effect." #!+sb-thread (let ((function (coerce function 'function))) (multiple-value-bind (res err) - (sb!unix::syscall ("interrupt_thread" - system-area-pointer sb!alien:unsigned-long) - thread - (thread-%sap thread) - (sb!kernel:get-lisp-obj-address function)) + ;; protect against gcing just when the ub32 address is ready + ;; to be passed to C + (sb!sys::with-pinned-objects (function) + (sb!unix::syscall ("interrupt_thread" + system-area-pointer sb!alien:unsigned-long) + thread + (thread-%sap thread) + (sb!kernel:get-lisp-obj-address function))) (unless res (error 'interrupt-thread-error :thread thread :errno err))))) diff --git a/version.lisp-expr b/version.lisp-expr index c3ae8b2..7050b5e 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.9.3.49" +"0.9.3.50" -- 1.7.10.4