[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Does anyone actually use threads with guile?
From: |
Linas Vepstas |
Subject: |
Does anyone actually use threads with guile? |
Date: |
Wed, 12 Nov 2008 22:28:01 -0600 |
Does anyone actually use threads with guile?
Or am I the first to do so?
Today, I got a new crash. I have multiple threads, which
are doing nothing but a bunch of define's, in parallel.
(They're loading scheme code from various files).
The stack trace is below. This is on guile-1.8.5
--linas
throw from within critical section.
Program received signal SIGABRT, Aborted.
[Switching to Thread 0xf5e56b90 (LWP 8655)]
0xffffe425 in __kernel_vsyscall ()
(gdb) bt
#0 0xffffe425 in __kernel_vsyscall ()
#1 0xf7aee085 in raise () from /lib/tls/i686/cmov/libc.so.6
#2 0xf7aefa01 in abort () from /lib/tls/i686/cmov/libc.so.6
#3 0xf7789208 in scm_ithrow (key=0xf460f190, args=0xf3c8da88, noreturn=1)
at throw.c:695
#4 0xf771eeb2 in scm_error_scm (key=0xf460f190, subr=0xf3d4e360,
message=0xf3d4e340, args=0x404, data=0x4) at error.c:92
#5 0xf775ef9b in scm_i_input_error (function=0xf77aaf38 "scm_i_lreadparen",
port=0xf3c8d970, message=0xf77aae7c "end of file", arg=0x404) at read.c:110
#6 0xf775f2e9 in flush_ws (port=0xf3c8d970,
eoferr=0xf77aaf38 "scm_i_lreadparen") at read.c:261
#7 0xf776204c in scm_read_sexp (chr=<value optimized out>, port=0xf3c8d970)
at read.c:357
#8 0xf7760b91 in scm_read_expression (port=0xf3c8d970) at read.c:1079
#9 0xf7761fde in scm_read_sexp (chr=<value optimized out>, port=0xf3c8d970)
at read.c:362
#10 0xf7760b91 in scm_read_expression (port=0xf3c8d970) at read.c:1079
#11 0xf7761fde in scm_read_sexp (chr=<value optimized out>, port=0xf3c8d970)
at read.c:362
---Type <return> to continue, or q <return> to quit---
#12 0xf7760b91 in scm_read_expression (port=0xf3c8d970) at read.c:1079
#13 0xf7782bc2 in inner_eval_string (data=0xf3c8d970) at strports.c:499
#14 0xf772dfde in scm_c_with_fluid (fluid=0x8aa7900, value=0xf45e8e80,
cproc=0xf7782b90 <inner_eval_string>, cdata=0xf3c8d970) at fluids.c:459
#15 0xf7747335 in scm_c_call_with_current_module (module=0xf45e8e80,
func=0xf7782b90 <inner_eval_string>, data=0xf3c8d970) at modules.c:104
#16 0xf7782e21 in scm_eval_string_in_module (string=0xf3d4e230,
module=0xf45e8e80) at strports.c:527
#17 0xf7782e55 in scm_eval_string (string=0xf3d4e230) at strports.c:535
#18 0xf7782e85 in scm_c_eval_string (
expr=0xf3a05a44 "(define (wire-bidi a-wire b-wire
uni-device)\n\t(let ((device (wire-null-device))\n\t\t\t(do-connect
#t)\n\t\t\t(myname \"\")\n\t\t)\n\t\t(define (connect-me)\n\t\t\t; Two
distinct checks of 'do-connect' are made, because "...) at
strports.c:481
#19 0xf7788b79 in scm_c_catch (tag=0x104, body=0xf7782e60 <scm_c_eval_string>,
body_data=0xf3a05a44,
handler=0xf78b05d8
<opencog::SchemeEval::catch_handler_wrapper(void*, scm_unused_struct*,
scm_unused_struct*)>, handler_data=0x8ac32d0,
pre_unwind_handler=0xf78b064a
<opencog::SchemeEval::preunwind_handler_wrapper(---Type <return> to
continue, or q <return> to quit---
void*, scm_unused_struct*, scm_unused_struct*)>,
pre_unwind_handler_data=0x8ac32d0) at throw.c:200
#20 0xf78b0a1d in opencog::SchemeEval::do_eval (this=0x8ac32d0,
address@hidden)
at
/home/linas/src/novamente/src/opencog-stage4/staging/opencog/guile/SchemeEval.cc:364
#21 0xf78b0cd7 in opencog::SchemeEval::c_wrap_eval (p=0x8ac32d0)
at
/home/linas/src/novamente/src/opencog-stage4/staging/opencog/guile/SchemeEval.cc:341
#22 0xf7713842 in c_body (d=0xf5e55a08) at continuations.c:350
#23 0xf7788b79 in scm_c_catch (tag=0x104, body=0xf7713830 <c_body>,
body_data=0xf5e55a08, handler=0xf7713850 <c_handler>,
handler_data=0xf5e55a08,
pre_unwind_handler=0xf7788440 <scm_handle_by_message_noexit>,
pre_unwind_handler_data=0x0) at throw.c:200
#24 0xf7713cf2 in scm_i_with_continuation_barrier (body=0xf7713830 <c_body>,
body_data=0xf5e55a08, handler=0xf7713850 <c_handler>,
handler_data=0xf5e55a08,
pre_unwind_handler=0xf7788440 <scm_handle_by_message_noexit>,
pre_unwind_handler_data=0x0) at continuations.c:326
---Type <return> to continue, or q <return> to quit---
#25 0xf7713dd3 in scm_c_with_continuation_barrier (
func=0xf78b0ca2 <opencog::SchemeEval::c_wrap_eval(void*)>, data=0x8ac32d0)
at continuations.c:368
#26 0xf7787959 in scm_i_with_guile_and_parent (
func=0xf78b0ca2 <opencog::SchemeEval::c_wrap_eval(void*)>, data=0x8ac32d0,
parent=0xf45e1e70) at threads.c:695
#27 0xf7787a4e in scm_with_guile (
func=0xf78b0ca2 <opencog::SchemeEval::c_wrap_eval(void*)>, data=0x8ac32d0)
at threads.c:683
#28 0xf78b034c in opencog::SchemeEval::eval (this=0x8ac32d0, address@hidden)
at
/home/linas/src/novamente/src/opencog-stage4/staging/opencog/guile/SchemeEval.cc:334
#29 0xf78bedd2 in opencog::SchemeShell::do_eval (this=0x8a90a18,
address@hidden)
at
/home/linas/src/novamente/src/opencog-stage4/staging/opencog/shell/SchemeShell.cc:232
#30 0xf78beffd in opencog::SchemeShell::eval (this=0x8a90a18, address@hidden,
h=0x8ad9978)
at
/home/linas/src/novamente/src/opencog-stage4/staging/opencog/shell/SchemeShell.cc:143
---Type <return> to continue, or q <return> to quit---
#31 0xf7f02faf in opencog::ConsoleSocket::OnLine (this=0x8ad97d8,
address@hidden)
at
/home/linas/src/novamente/src/opencog-stage4/staging/opencog/server/ConsoleSocket.cc:88
#32 0x0806a738 in TcpSocket::OnRead ()
#33 0x0806e68d in TcpSocket::OnRead ()
#34 0x08066c0d in SocketHandler::Select ()
#35 0x080631c4 in SocketHandler::Select ()
#36 0x0805b5fa in Socket::SocketThread::Run ()
#37 0x08072073 in Thread::StartThread ()
#38 0xf7d9b4fb in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#39 0xf7b99e5e in clone () from /lib/tls/i686/cmov/libc.so.6
- Does anyone actually use threads with guile?,
Linas Vepstas <=