From: Daniel W. <dl...@it...> - 2011-01-31 22:42:27
|
I am trying to use sb-thread:interrupt-thread to execution a function in another thread. (Specifically, the reason I'm doing this is so that I can get a stack trace of that thread printed.) However, it doesn't seem to work. Nothing happens, unless the thread is the current thread. Bordeax threads apparently also expects this to work. It does not seem to be working for me. I am using SBCL 1.0.41.ita, and uname -a is Linux deng-dwein 2.6.27-17-generic #1 SMP Wed Jan 27 23:22:32 UTC 2010 x86_64 GNU/Linux Thanks. -- Dan |
From: Zach B. <xa...@xa...> - 2011-01-31 22:57:27
|
Daniel Weinreb <dl...@it...> writes: > I am trying to use > > sb-thread:interrupt-thread > > to execution a function in another thread. (Specifically, > the reason I'm doing this is so that I can get a stack > trace of that thread printed.) > > However, it doesn't seem to work. Nothing > happens, unless the thread is the current thread. > > Bordeax threads apparently also expects this to work. > It does not seem to be working for me. How can you tell it isn't working? What function is passed to sb-thread:interrupt-thread? Zach |
From: David L. R. <ra...@cs...> - 2011-01-31 23:07:43
|
The following script seems to work, but maybe I'm missing the point. One thing I don't know is how to interrupt a thread with a break, switch to it (":yield" in ccl), and then be able to debug. I think the reason I don't know is that this isn't possible in sbcl? oliphaunt-0:~/lisps/sbcl-1.0.45$ sbcl (running SBCL from: /v/filer4b/v8q001/lisps/sbcl-1.0.45) This is SBCL 1.0.45, an implementation of ANSI Common Lisp. More information about SBCL is available at <http://www.sbcl.org/>. SBCL is free software, provided as is, with absolutely no warranty. It is mostly in the public domain; some portions are provided under BSD-style licenses. See the CREDITS and COPYING files in the distribution for more information. * (defun countdown (x) (if (< x 0) x (countdown (1- x)))) COUNTDOWN * (defun foo () (time (countdown 10000000000))) FOO * (sb-thread:make-thread #'foo :name "thread-name") #<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> * (sb-thread:list-all-threads) (#<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> #<SB-THREAD:THREAD "initial thread" RUNNING {1002BC0801}>) * (sb-thread:interrupt-thread (car (sb-thread:list-all-threads)) #'sb-debug:backtrace) NIL * 0: (SB-DEBUG::MAP-BACKTRACE #<CLOSURE (LAMBDA #) {1002C44B59}> :START 0 :COUNT 1152921504606846975) 1: (BACKTRACE 1152921504606846975 #<SYNONYM-STREAM :SYMBOL *TERMINAL-IO* {10001E8501}>) 2: ((FLET #:WITHOUT-INTERRUPTS-BODY-[WITH-SYSTEM-MUTEX-THUNK]418)) 3: ((FLET #:WITHOUT-INTERRUPTS-BODY-[WITHOUT-INTERRUPTS-BODY-[INVOKE-INTERRUPTION]11]18)) 4: ((FLET #:WITHOUT-INTERRUPTS-BODY-[INVOKE-INTERRUPTION]11)) 5: (SB-SYS:INVOKE-INTERRUPTION #<CLOSURE (FLET SB-UNIX::INTERRUPTION) {7FFFF4D19E79}>) 6: (SB-SYS:INVOKE-INTERRUPTION #<CLOSURE (FLET SB-UNIX::INTERRUPTION) {7FFFF4D19E79}>)[:EXTERNAL] 7: ((FLET SB-UNIX::RUN-HANDLER) 13 #.(SB-SYS:INT-SAP #X7FFFF4D1A2B0) #.(SB-SYS:INT-SAP #X7FFFF4D1A180)) 8: ((FLET SB-UNIX::RUN-HANDLER) 13 #.(SB-SYS:INT-SAP #X7FFFF4D1A2B0) #.(SB-SYS:INT-SAP #X7FFFF4D1A180))[:OPTIONAL] 9: ((FLET SB-UNIX::RUN-HANDLER))[:EXTERNAL] 10: ("foreign function: call_into_lisp") 11: ("foreign function: funcall3") 12: ("foreign function: interrupt_handle_now") 13: ("foreign function: #x4144CF") 14: ("no debug information for frame") 15: (CALL-WITH-TIMING #<FUNCTION SB-IMPL::PRINT-TIME> #<FUNCTION (LAMBDA #) {1002C2F6D9}>) 16: ((FLET #:WITHOUT-INTERRUPTS-BODY-[BLOCK359]364)) 17: ((FLET SB-THREAD::WITH-MUTEX-THUNK)) 18: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]300)) 19: (SB-THREAD::CALL-WITH-MUTEX #<CLOSURE (FLET SB-THREAD::WITH-MUTEX-THUNK) {7FFFF4D1ACB9}> #S(SB-THREAD:MUTEX :NAME "thread result lock" :%OWNER #<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> :STATE 1) #<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> T) 20: (SB-THREAD::INITIAL-THREAD-FUNCTION) 21: ("foreign function: call_into_lisp") 22: ("foreign function: new_thread_trampoline") "string to show that we're at the repl" "string to show that we're at the repl" * (sb-thread:list-all-threads) (#<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> #<SB-THREAD:THREAD "initial thread" RUNNING {1002BC0801}>) * Evaluation took: 69.482 seconds of real time 69.470000 seconds of total run time (69.460000 user, 0.010000 system) 99.98% CPU 180,199,897,936 processor cycles 264,000 bytes consed "string to show that we're at the repl" "string to show that we're at the repl" * (quit) oliphaunt-0:~/lisps/sbcl-1.0.45$ uname -a Linux oliphaunt-0 2.6.32-28-server #55-Ubuntu SMP Mon Jan 10 23:57:16 UTC 2011 x86_64 GNU/Linux oliphaunt-0:~/lisps/sbcl-1.0.45$ |
From: William H. <wha...@gm...> - 2011-01-31 22:58:51
|
I have a function that does what you want. I haven't tested it lately but it worked when I wrote it not too long ago. (defun thread-backtrace (thread-or-id) "Interrupt THREAD and print a backtrace. This should not affect the thread." (let ((thread (etypecase thread-or-id (thread thread-or-id) (integer (thread-from-id thread-or-id))))) (sb-thread:interrupt-thread thread (let ((debug-io *debug-io*)) (lambda () (let ((*debug-io* debug-io)) (sb-debug:backtrace 128))))))) On Mon, Jan 31, 2011 at 3:42 PM, Daniel Weinreb <dl...@it...> wrote: > I am trying to use > > sb-thread:interrupt-thread > > to execution a function in another thread. (Specifically, > the reason I'm doing this is so that I can get a stack > trace of that thread printed.) > > However, it doesn't seem to work. Nothing > happens, unless the thread is the current thread. > > Bordeax threads apparently also expects this to work. > It does not seem to be working for me. > > I am using SBCL 1.0.41.ita, and uname -a is > > Linux deng-dwein 2.6.27-17-generic #1 SMP Wed Jan 27 23:22:32 UTC 2010 > x86_64 GNU/Linux > > Thanks. > > -- Dan > > > > ------------------------------------------------------------------------------ > Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! > Finally, a world-class log management solution at an even better > price-free! > Download using promo code Free_Logger_4_Dev2Dev. Offer expires > February 28th, so secure your free ArcSight Logger TODAY! > http://p.sf.net/sfu/arcsight-sfd2d > _______________________________________________ > Sbcl-devel mailing list > Sbc...@li... > https://lists.sourceforge.net/lists/listinfo/sbcl-devel > |
From: Daniel W. <dl...@it...> - 2011-02-01 18:22:53
|
I tried various functions, including a (print 'foo) and a (setq *foo* 1). Nothing happens. -- Dan On 1/31/11 5:57 PM, Zach Beane wrote: > Daniel Weinreb<dl...@it...> writes: > >> I am trying to use >> >> sb-thread:interrupt-thread >> >> to execution a function in another thread. (Specifically, >> the reason I'm doing this is so that I can get a stack >> trace of that thread printed.) >> >> However, it doesn't seem to work. Nothing >> happens, unless the thread is the current thread. >> >> Bordeax threads apparently also expects this to work. >> It does not seem to be working for me. > How can you tell it isn't working? What function is passed to > sb-thread:interrupt-thread? > > Zach |
From: Gábor M. <me...@re...> - 2011-02-01 19:44:44
|
On Tue, Feb 1, 2011 at 6:22 PM, Daniel Weinreb <dl...@it...> wrote: > I tried various functions, including a (print 'foo) > and a (setq *foo* 1). Nothing happens. May the target thread be in a WITHOUT-INTERRUPTS? We can keep guessing, but it has been working for quite a while without big, apparent problems. Maybe it would be best if you could distill it to a short test case. Cheers, Gabor |
From: Daniel W. <dl...@it...> - 2011-02-02 00:11:34
|
I tried this and nothing happened. Maybe the version of SBCL that I'm using behaves differently from the version you're using... Thanks! -- Dan On 1/31/11 6:04 PM, David L. Rager wrote: > The following script seems to work, but maybe I'm missing the point. > One thing I don't know is how to interrupt a thread with a break, > switch to it (":yield" in ccl), and then be able to debug. I think > the reason I don't know is that this isn't possible in sbcl? > > > > > > > oliphaunt-0:~/lisps/sbcl-1.0.45$ sbcl > (running SBCL from: /v/filer4b/v8q001/lisps/sbcl-1.0.45) > This is SBCL 1.0.45, an implementation of ANSI Common Lisp. > More information about SBCL is available at<http://www.sbcl.org/>. > > SBCL is free software, provided as is, with absolutely no warranty. > It is mostly in the public domain; some portions are provided under > BSD-style licenses. See the CREDITS and COPYING files in the > distribution for more information. > * (defun countdown (x) (if (< x 0) x (countdown (1- x)))) > > COUNTDOWN > * (defun foo () (time (countdown 10000000000))) > > FOO > * (sb-thread:make-thread #'foo :name "thread-name") > > #<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> > * (sb-thread:list-all-threads) > > (#<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> > #<SB-THREAD:THREAD "initial thread" RUNNING {1002BC0801}>) > * (sb-thread:interrupt-thread (car (sb-thread:list-all-threads)) > #'sb-debug:backtrace) > > NIL > * 0: (SB-DEBUG::MAP-BACKTRACE > #<CLOSURE (LAMBDA #) {1002C44B59}> > :START > 0 > :COUNT > 1152921504606846975) > 1: (BACKTRACE > 1152921504606846975 > #<SYNONYM-STREAM :SYMBOL *TERMINAL-IO* {10001E8501}>) > 2: ((FLET #:WITHOUT-INTERRUPTS-BODY-[WITH-SYSTEM-MUTEX-THUNK]418)) > 3: ((FLET #:WITHOUT-INTERRUPTS-BODY-[WITHOUT-INTERRUPTS-BODY-[INVOKE-INTERRUPTION]11]18)) > 4: ((FLET #:WITHOUT-INTERRUPTS-BODY-[INVOKE-INTERRUPTION]11)) > 5: (SB-SYS:INVOKE-INTERRUPTION > #<CLOSURE (FLET SB-UNIX::INTERRUPTION) {7FFFF4D19E79}>) > 6: (SB-SYS:INVOKE-INTERRUPTION > #<CLOSURE (FLET SB-UNIX::INTERRUPTION) {7FFFF4D19E79}>)[:EXTERNAL] > 7: ((FLET SB-UNIX::RUN-HANDLER) > 13 > #.(SB-SYS:INT-SAP #X7FFFF4D1A2B0) > #.(SB-SYS:INT-SAP #X7FFFF4D1A180)) > 8: ((FLET SB-UNIX::RUN-HANDLER) > 13 > #.(SB-SYS:INT-SAP #X7FFFF4D1A2B0) > #.(SB-SYS:INT-SAP #X7FFFF4D1A180))[:OPTIONAL] > 9: ((FLET SB-UNIX::RUN-HANDLER))[:EXTERNAL] > 10: ("foreign function: call_into_lisp") > 11: ("foreign function: funcall3") > 12: ("foreign function: interrupt_handle_now") > 13: ("foreign function: #x4144CF") > 14: ("no debug information for frame") > 15: (CALL-WITH-TIMING > #<FUNCTION SB-IMPL::PRINT-TIME> > #<FUNCTION (LAMBDA #) {1002C2F6D9}>) > 16: ((FLET #:WITHOUT-INTERRUPTS-BODY-[BLOCK359]364)) > 17: ((FLET SB-THREAD::WITH-MUTEX-THUNK)) > 18: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]300)) > 19: (SB-THREAD::CALL-WITH-MUTEX > #<CLOSURE (FLET SB-THREAD::WITH-MUTEX-THUNK) {7FFFF4D1ACB9}> > #S(SB-THREAD:MUTEX > :NAME "thread result lock" > :%OWNER #<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> > :STATE 1) > #<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> > T) > 20: (SB-THREAD::INITIAL-THREAD-FUNCTION) > 21: ("foreign function: call_into_lisp") > 22: ("foreign function: new_thread_trampoline") > "string to show that we're at the repl" > > "string to show that we're at the repl" > * (sb-thread:list-all-threads) > > (#<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> > #<SB-THREAD:THREAD "initial thread" RUNNING {1002BC0801}>) > * > Evaluation took: > 69.482 seconds of real time > 69.470000 seconds of total run time (69.460000 user, 0.010000 system) > 99.98% CPU > 180,199,897,936 processor cycles > 264,000 bytes consed > > "string to show that we're at the repl" > "string to show that we're at the repl" > * (quit) > oliphaunt-0:~/lisps/sbcl-1.0.45$ uname -a > Linux oliphaunt-0 2.6.32-28-server #55-Ubuntu SMP Mon Jan 10 23:57:16 > UTC 2011 x86_64 GNU/Linux > oliphaunt-0:~/lisps/sbcl-1.0.45$ |
From: David L. R. <ra...@cs...> - 2011-02-02 00:15:51
|
If you haven't already tried it, maybe try compiling SBCL from the sources. Perhaps the binary you're using isn't an exact match for the libraries on your system (not that I know more than half a cent about binary distribution). On Tue, Feb 1, 2011 at 6:11 PM, Daniel Weinreb <dl...@it...> wrote: > I tried this and nothing happened. Maybe the version > of SBCL that I'm using behaves differently from > the version you're using... > > Thanks! > > -- Dan > > On 1/31/11 6:04 PM, David L. Rager wrote: >> The following script seems to work, but maybe I'm missing the point. >> One thing I don't know is how to interrupt a thread with a break, >> switch to it (":yield" in ccl), and then be able to debug. I think >> the reason I don't know is that this isn't possible in sbcl? >> >> >> >> >> >> >> oliphaunt-0:~/lisps/sbcl-1.0.45$ sbcl >> (running SBCL from: /v/filer4b/v8q001/lisps/sbcl-1.0.45) >> This is SBCL 1.0.45, an implementation of ANSI Common Lisp. >> More information about SBCL is available at<http://www.sbcl.org/>. >> >> SBCL is free software, provided as is, with absolutely no warranty. >> It is mostly in the public domain; some portions are provided under >> BSD-style licenses. See the CREDITS and COPYING files in the >> distribution for more information. >> * (defun countdown (x) (if (< x 0) x (countdown (1- x)))) >> >> COUNTDOWN >> * (defun foo () (time (countdown 10000000000))) >> >> FOO >> * (sb-thread:make-thread #'foo :name "thread-name") >> >> #<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> >> * (sb-thread:list-all-threads) >> >> (#<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> >> #<SB-THREAD:THREAD "initial thread" RUNNING {1002BC0801}>) >> * (sb-thread:interrupt-thread (car (sb-thread:list-all-threads)) >> #'sb-debug:backtrace) >> >> NIL >> * 0: (SB-DEBUG::MAP-BACKTRACE >> #<CLOSURE (LAMBDA #) {1002C44B59}> >> :START >> 0 >> :COUNT >> 1152921504606846975) >> 1: (BACKTRACE >> 1152921504606846975 >> #<SYNONYM-STREAM :SYMBOL *TERMINAL-IO* {10001E8501}>) >> 2: ((FLET #:WITHOUT-INTERRUPTS-BODY-[WITH-SYSTEM-MUTEX-THUNK]418)) >> 3: ((FLET #:WITHOUT-INTERRUPTS-BODY-[WITHOUT-INTERRUPTS-BODY-[INVOKE-INTERRUPTION]11]18)) >> 4: ((FLET #:WITHOUT-INTERRUPTS-BODY-[INVOKE-INTERRUPTION]11)) >> 5: (SB-SYS:INVOKE-INTERRUPTION >> #<CLOSURE (FLET SB-UNIX::INTERRUPTION) {7FFFF4D19E79}>) >> 6: (SB-SYS:INVOKE-INTERRUPTION >> #<CLOSURE (FLET SB-UNIX::INTERRUPTION) {7FFFF4D19E79}>)[:EXTERNAL] >> 7: ((FLET SB-UNIX::RUN-HANDLER) >> 13 >> #.(SB-SYS:INT-SAP #X7FFFF4D1A2B0) >> #.(SB-SYS:INT-SAP #X7FFFF4D1A180)) >> 8: ((FLET SB-UNIX::RUN-HANDLER) >> 13 >> #.(SB-SYS:INT-SAP #X7FFFF4D1A2B0) >> #.(SB-SYS:INT-SAP #X7FFFF4D1A180))[:OPTIONAL] >> 9: ((FLET SB-UNIX::RUN-HANDLER))[:EXTERNAL] >> 10: ("foreign function: call_into_lisp") >> 11: ("foreign function: funcall3") >> 12: ("foreign function: interrupt_handle_now") >> 13: ("foreign function: #x4144CF") >> 14: ("no debug information for frame") >> 15: (CALL-WITH-TIMING >> #<FUNCTION SB-IMPL::PRINT-TIME> >> #<FUNCTION (LAMBDA #) {1002C2F6D9}>) >> 16: ((FLET #:WITHOUT-INTERRUPTS-BODY-[BLOCK359]364)) >> 17: ((FLET SB-THREAD::WITH-MUTEX-THUNK)) >> 18: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]300)) >> 19: (SB-THREAD::CALL-WITH-MUTEX >> #<CLOSURE (FLET SB-THREAD::WITH-MUTEX-THUNK) {7FFFF4D1ACB9}> >> #S(SB-THREAD:MUTEX >> :NAME "thread result lock" >> :%OWNER #<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> >> :STATE 1) >> #<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> >> T) >> 20: (SB-THREAD::INITIAL-THREAD-FUNCTION) >> 21: ("foreign function: call_into_lisp") >> 22: ("foreign function: new_thread_trampoline") >> "string to show that we're at the repl" >> >> "string to show that we're at the repl" >> * (sb-thread:list-all-threads) >> >> (#<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> >> #<SB-THREAD:THREAD "initial thread" RUNNING {1002BC0801}>) >> * >> Evaluation took: >> 69.482 seconds of real time >> 69.470000 seconds of total run time (69.460000 user, 0.010000 system) >> 99.98% CPU >> 180,199,897,936 processor cycles >> 264,000 bytes consed >> >> "string to show that we're at the repl" >> "string to show that we're at the repl" >> * (quit) >> oliphaunt-0:~/lisps/sbcl-1.0.45$ uname -a >> Linux oliphaunt-0 2.6.32-28-server #55-Ubuntu SMP Mon Jan 10 23:57:16 >> UTC 2011 x86_64 GNU/Linux >> oliphaunt-0:~/lisps/sbcl-1.0.45$ > > ------------------------------------------------------------------------------ > Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! > Finally, a world-class log management solution at an even better price-free! > Download using promo code Free_Logger_4_Dev2Dev. Offer expires > February 28th, so secure your free ArcSight Logger TODAY! > http://p.sf.net/sfu/arcsight-sfd2d > _______________________________________________ > Sbcl-devel mailing list > Sbc...@li... > https://lists.sourceforge.net/lists/listinfo/sbcl-devel > |
From: Daniel W. <dl...@it...> - 2011-02-02 00:23:40
|
Because of the way the processes work here, I'm not in a position to do that. I have to use and stay in sync with the version of SBCL being used throughout the team. If it's working for you, then the only thing I can do is wait until our SBCL experts move to a new version. Thanks for all the help! -- Dan On 2/1/11 7:14 PM, David L. Rager wrote: > If you haven't already tried it, maybe try compiling SBCL from the > sources. Perhaps the binary you're using isn't an exact match for the > libraries on your system (not that I know more than half a cent about > binary distribution). > > On Tue, Feb 1, 2011 at 6:11 PM, Daniel Weinreb<dl...@it...> wrote: >> I tried this and nothing happened. Maybe the version >> of SBCL that I'm using behaves differently from >> the version you're using... >> >> Thanks! >> >> -- Dan >> >> On 1/31/11 6:04 PM, David L. Rager wrote: >>> The following script seems to work, but maybe I'm missing the point. >>> One thing I don't know is how to interrupt a thread with a break, >>> switch to it (":yield" in ccl), and then be able to debug. I think >>> the reason I don't know is that this isn't possible in sbcl? >>> >>> >>> >>> >>> >>> >>> oliphaunt-0:~/lisps/sbcl-1.0.45$ sbcl >>> (running SBCL from: /v/filer4b/v8q001/lisps/sbcl-1.0.45) >>> This is SBCL 1.0.45, an implementation of ANSI Common Lisp. >>> More information about SBCL is available at<http://www.sbcl.org/>. >>> >>> SBCL is free software, provided as is, with absolutely no warranty. >>> It is mostly in the public domain; some portions are provided under >>> BSD-style licenses. See the CREDITS and COPYING files in the >>> distribution for more information. >>> * (defun countdown (x) (if (< x 0) x (countdown (1- x)))) >>> >>> COUNTDOWN >>> * (defun foo () (time (countdown 10000000000))) >>> >>> FOO >>> * (sb-thread:make-thread #'foo :name "thread-name") >>> >>> #<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> >>> * (sb-thread:list-all-threads) >>> >>> (#<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> >>> #<SB-THREAD:THREAD "initial thread" RUNNING {1002BC0801}>) >>> * (sb-thread:interrupt-thread (car (sb-thread:list-all-threads)) >>> #'sb-debug:backtrace) >>> >>> NIL >>> * 0: (SB-DEBUG::MAP-BACKTRACE >>> #<CLOSURE (LAMBDA #) {1002C44B59}> >>> :START >>> 0 >>> :COUNT >>> 1152921504606846975) >>> 1: (BACKTRACE >>> 1152921504606846975 >>> #<SYNONYM-STREAM :SYMBOL *TERMINAL-IO* {10001E8501}>) >>> 2: ((FLET #:WITHOUT-INTERRUPTS-BODY-[WITH-SYSTEM-MUTEX-THUNK]418)) >>> 3: ((FLET #:WITHOUT-INTERRUPTS-BODY-[WITHOUT-INTERRUPTS-BODY-[INVOKE-INTERRUPTION]11]18)) >>> 4: ((FLET #:WITHOUT-INTERRUPTS-BODY-[INVOKE-INTERRUPTION]11)) >>> 5: (SB-SYS:INVOKE-INTERRUPTION >>> #<CLOSURE (FLET SB-UNIX::INTERRUPTION) {7FFFF4D19E79}>) >>> 6: (SB-SYS:INVOKE-INTERRUPTION >>> #<CLOSURE (FLET SB-UNIX::INTERRUPTION) {7FFFF4D19E79}>)[:EXTERNAL] >>> 7: ((FLET SB-UNIX::RUN-HANDLER) >>> 13 >>> #.(SB-SYS:INT-SAP #X7FFFF4D1A2B0) >>> #.(SB-SYS:INT-SAP #X7FFFF4D1A180)) >>> 8: ((FLET SB-UNIX::RUN-HANDLER) >>> 13 >>> #.(SB-SYS:INT-SAP #X7FFFF4D1A2B0) >>> #.(SB-SYS:INT-SAP #X7FFFF4D1A180))[:OPTIONAL] >>> 9: ((FLET SB-UNIX::RUN-HANDLER))[:EXTERNAL] >>> 10: ("foreign function: call_into_lisp") >>> 11: ("foreign function: funcall3") >>> 12: ("foreign function: interrupt_handle_now") >>> 13: ("foreign function: #x4144CF") >>> 14: ("no debug information for frame") >>> 15: (CALL-WITH-TIMING >>> #<FUNCTION SB-IMPL::PRINT-TIME> >>> #<FUNCTION (LAMBDA #) {1002C2F6D9}>) >>> 16: ((FLET #:WITHOUT-INTERRUPTS-BODY-[BLOCK359]364)) >>> 17: ((FLET SB-THREAD::WITH-MUTEX-THUNK)) >>> 18: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]300)) >>> 19: (SB-THREAD::CALL-WITH-MUTEX >>> #<CLOSURE (FLET SB-THREAD::WITH-MUTEX-THUNK) {7FFFF4D1ACB9}> >>> #S(SB-THREAD:MUTEX >>> :NAME "thread result lock" >>> :%OWNER #<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> >>> :STATE 1) >>> #<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> >>> T) >>> 20: (SB-THREAD::INITIAL-THREAD-FUNCTION) >>> 21: ("foreign function: call_into_lisp") >>> 22: ("foreign function: new_thread_trampoline") >>> "string to show that we're at the repl" >>> >>> "string to show that we're at the repl" >>> * (sb-thread:list-all-threads) >>> >>> (#<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> >>> #<SB-THREAD:THREAD "initial thread" RUNNING {1002BC0801}>) >>> * >>> Evaluation took: >>> 69.482 seconds of real time >>> 69.470000 seconds of total run time (69.460000 user, 0.010000 system) >>> 99.98% CPU >>> 180,199,897,936 processor cycles >>> 264,000 bytes consed >>> >>> "string to show that we're at the repl" >>> "string to show that we're at the repl" >>> * (quit) >>> oliphaunt-0:~/lisps/sbcl-1.0.45$ uname -a >>> Linux oliphaunt-0 2.6.32-28-server #55-Ubuntu SMP Mon Jan 10 23:57:16 >>> UTC 2011 x86_64 GNU/Linux >>> oliphaunt-0:~/lisps/sbcl-1.0.45$ >> ------------------------------------------------------------------------------ >> Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! >> Finally, a world-class log management solution at an even better price-free! >> Download using promo code Free_Logger_4_Dev2Dev. Offer expires >> February 28th, so secure your free ArcSight Logger TODAY! >> http://p.sf.net/sfu/arcsight-sfd2d >> _______________________________________________ >> Sbcl-devel mailing list >> Sbc...@li... >> https://lists.sourceforge.net/lists/listinfo/sbcl-devel >> |
From: James Y K. <fo...@fu...> - 2011-02-02 00:38:20
|
On Feb 1, 2011, at 7:23 PM, Daniel Weinreb wrote: > Because of the way the processes work here, I'm not in a position > to do that. I have to use and stay in sync with the version of > SBCL being used throughout the team. If it's working for you, > then the only thing I can do is wait until our SBCL experts > move to a new version. > > Thanks for all the help! For the record, David's test worked for me with (I presume) the same exact binary build you're using (1.0.41.ita). If you have any more details about your environment, you can send them to me off-list. :) James |
From: William H. <wha...@gm...> - 2011-02-02 00:38:51
|
Yea, but you would then know that the version or sbcl is the problem and no the code you are using. On Tue, Feb 1, 2011 at 5:23 PM, Daniel Weinreb <dl...@it...> wrote: > Because of the way the processes work here, I'm not in a position > to do that. I have to use and stay in sync with the version of > SBCL being used throughout the team. If it's working for you, > then the only thing I can do is wait until our SBCL experts > move to a new version. > > Thanks for all the help! > > -- Dan > > On 2/1/11 7:14 PM, David L. Rager wrote: > > If you haven't already tried it, maybe try compiling SBCL from the > > sources. Perhaps the binary you're using isn't an exact match for the > > libraries on your system (not that I know more than half a cent about > > binary distribution). > > > > On Tue, Feb 1, 2011 at 6:11 PM, Daniel Weinreb<dl...@it...> > wrote: > >> I tried this and nothing happened. Maybe the version > >> of SBCL that I'm using behaves differently from > >> the version you're using... > >> > >> Thanks! > >> > >> -- Dan > >> > >> On 1/31/11 6:04 PM, David L. Rager wrote: > >>> The following script seems to work, but maybe I'm missing the point. > >>> One thing I don't know is how to interrupt a thread with a break, > >>> switch to it (":yield" in ccl), and then be able to debug. I think > >>> the reason I don't know is that this isn't possible in sbcl? > >>> > >>> > >>> > >>> > >>> > >>> > >>> oliphaunt-0:~/lisps/sbcl-1.0.45$ sbcl > >>> (running SBCL from: /v/filer4b/v8q001/lisps/sbcl-1.0.45) > >>> This is SBCL 1.0.45, an implementation of ANSI Common Lisp. > >>> More information about SBCL is available at<http://www.sbcl.org/>. > >>> > >>> SBCL is free software, provided as is, with absolutely no warranty. > >>> It is mostly in the public domain; some portions are provided under > >>> BSD-style licenses. See the CREDITS and COPYING files in the > >>> distribution for more information. > >>> * (defun countdown (x) (if (< x 0) x (countdown (1- x)))) > >>> > >>> COUNTDOWN > >>> * (defun foo () (time (countdown 10000000000))) > >>> > >>> FOO > >>> * (sb-thread:make-thread #'foo :name "thread-name") > >>> > >>> #<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> > >>> * (sb-thread:list-all-threads) > >>> > >>> (#<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> > >>> #<SB-THREAD:THREAD "initial thread" RUNNING {1002BC0801}>) > >>> * (sb-thread:interrupt-thread (car (sb-thread:list-all-threads)) > >>> #'sb-debug:backtrace) > >>> > >>> NIL > >>> * 0: (SB-DEBUG::MAP-BACKTRACE > >>> #<CLOSURE (LAMBDA #) {1002C44B59}> > >>> :START > >>> 0 > >>> :COUNT > >>> 1152921504606846975) > >>> 1: (BACKTRACE > >>> 1152921504606846975 > >>> #<SYNONYM-STREAM :SYMBOL *TERMINAL-IO* {10001E8501}>) > >>> 2: ((FLET #:WITHOUT-INTERRUPTS-BODY-[WITH-SYSTEM-MUTEX-THUNK]418)) > >>> 3: ((FLET > #:WITHOUT-INTERRUPTS-BODY-[WITHOUT-INTERRUPTS-BODY-[INVOKE-INTERRUPTION]11]18)) > >>> 4: ((FLET #:WITHOUT-INTERRUPTS-BODY-[INVOKE-INTERRUPTION]11)) > >>> 5: (SB-SYS:INVOKE-INTERRUPTION > >>> #<CLOSURE (FLET SB-UNIX::INTERRUPTION) {7FFFF4D19E79}>) > >>> 6: (SB-SYS:INVOKE-INTERRUPTION > >>> #<CLOSURE (FLET SB-UNIX::INTERRUPTION) > {7FFFF4D19E79}>)[:EXTERNAL] > >>> 7: ((FLET SB-UNIX::RUN-HANDLER) > >>> 13 > >>> #.(SB-SYS:INT-SAP #X7FFFF4D1A2B0) > >>> #.(SB-SYS:INT-SAP #X7FFFF4D1A180)) > >>> 8: ((FLET SB-UNIX::RUN-HANDLER) > >>> 13 > >>> #.(SB-SYS:INT-SAP #X7FFFF4D1A2B0) > >>> #.(SB-SYS:INT-SAP #X7FFFF4D1A180))[:OPTIONAL] > >>> 9: ((FLET SB-UNIX::RUN-HANDLER))[:EXTERNAL] > >>> 10: ("foreign function: call_into_lisp") > >>> 11: ("foreign function: funcall3") > >>> 12: ("foreign function: interrupt_handle_now") > >>> 13: ("foreign function: #x4144CF") > >>> 14: ("no debug information for frame") > >>> 15: (CALL-WITH-TIMING > >>> #<FUNCTION SB-IMPL::PRINT-TIME> > >>> #<FUNCTION (LAMBDA #) {1002C2F6D9}>) > >>> 16: ((FLET #:WITHOUT-INTERRUPTS-BODY-[BLOCK359]364)) > >>> 17: ((FLET SB-THREAD::WITH-MUTEX-THUNK)) > >>> 18: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]300)) > >>> 19: (SB-THREAD::CALL-WITH-MUTEX > >>> #<CLOSURE (FLET SB-THREAD::WITH-MUTEX-THUNK) {7FFFF4D1ACB9}> > >>> #S(SB-THREAD:MUTEX > >>> :NAME "thread result lock" > >>> :%OWNER #<SB-THREAD:THREAD "thread-name" RUNNING > {1002C3D311}> > >>> :STATE 1) > >>> #<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> > >>> T) > >>> 20: (SB-THREAD::INITIAL-THREAD-FUNCTION) > >>> 21: ("foreign function: call_into_lisp") > >>> 22: ("foreign function: new_thread_trampoline") > >>> "string to show that we're at the repl" > >>> > >>> "string to show that we're at the repl" > >>> * (sb-thread:list-all-threads) > >>> > >>> (#<SB-THREAD:THREAD "thread-name" RUNNING {1002C3D311}> > >>> #<SB-THREAD:THREAD "initial thread" RUNNING {1002BC0801}>) > >>> * > >>> Evaluation took: > >>> 69.482 seconds of real time > >>> 69.470000 seconds of total run time (69.460000 user, 0.010000 > system) > >>> 99.98% CPU > >>> 180,199,897,936 processor cycles > >>> 264,000 bytes consed > >>> > >>> "string to show that we're at the repl" > >>> "string to show that we're at the repl" > >>> * (quit) > >>> oliphaunt-0:~/lisps/sbcl-1.0.45$ uname -a > >>> Linux oliphaunt-0 2.6.32-28-server #55-Ubuntu SMP Mon Jan 10 23:57:16 > >>> UTC 2011 x86_64 GNU/Linux > >>> oliphaunt-0:~/lisps/sbcl-1.0.45$ > >> > ------------------------------------------------------------------------------ > >> Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! > >> Finally, a world-class log management solution at an even better > price-free! > >> Download using promo code Free_Logger_4_Dev2Dev. Offer expires > >> February 28th, so secure your free ArcSight Logger TODAY! > >> http://p.sf.net/sfu/arcsight-sfd2d > >> _______________________________________________ > >> Sbcl-devel mailing list > >> Sbc...@li... > >> https://lists.sourceforge.net/lists/listinfo/sbcl-devel > >> > > > ------------------------------------------------------------------------------ > Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! > Finally, a world-class log management solution at an even better > price-free! > Download using promo code Free_Logger_4_Dev2Dev. Offer expires > February 28th, so secure your free ArcSight Logger TODAY! > http://p.sf.net/sfu/arcsight-sfd2d > _______________________________________________ > Sbcl-devel mailing list > Sbc...@li... > https://lists.sourceforge.net/lists/listinfo/sbcl-devel > |
From: Martin C. <cra...@co...> - 2011-02-02 21:09:02
|
Daniel Weinreb wrote on Tue, Feb 01, 2011 at 07:23:26PM -0500: > Because of the way the processes work here, I'm not in a position > to do that. I have to use and stay in sync with the version of > SBCL being used throughout the team. If it's working for you, > then the only thing I can do is wait until our SBCL experts > move to a new version. To the best of my tracking that 1.0.41 is a little stone-agey but there were no threading related issues discovered since then. Otherwise... export SBCL=/home/cracauer/new-sbcl/devhead4504/sbcl make install ...should get you going with 1.0.45.4 with lots of new dynamic-extent etc. Martin -- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Martin Cracauer <cra...@co...> http://www.cons.org/cracauer/ |
From: Daniel W. <dl...@it...> - 2011-02-02 13:36:13
|
I tried it all again today and it works; I am mystified but pleased. -- Dan On 2/1/11 7:38 PM, James Y Knight wrote: > On Feb 1, 2011, at 7:23 PM, Daniel Weinreb wrote: >> Because of the way the processes work here, I'm not in a position >> to do that. I have to use and stay in sync with the version of >> SBCL being used throughout the team. If it's working for you, >> then the only thing I can do is wait until our SBCL experts >> move to a new version. >> >> Thanks for all the help! > For the record, David's test worked for me with (I presume) the same exact binary build you're using (1.0.41.ita). > > If you have any more details about your environment, you can send them to me off-list. :) > > James |