From: <cli...@li...> - 2010-02-20 12:04:37
|
Send clisp-cvs mailing list submissions to cli...@li... To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/clisp-cvs or, via email, send a message with subject or body 'help' to cli...@li... You can reach the person managing the list at cli...@li... When replying, please edit your Subject line so it is more specific than "Re: Contents of clisp-cvs digest..." CLISP CVS commits for today Today's Topics: 1. clisp/tests mt.tst,1.24,1.25 (Vladimir Tzankov) 2. clisp/src ChangeLog, 1.7251, 1.7252 subr.d, 1.276, 1.277 subrkw.d, 1.70, 1.71 zthread.d, 1.78, 1.79 (Vladimir Tzankov) 3. clisp/src ChangeLog,1.7252,1.7253 zthread.d,1.79,1.80 (Vladimir Tzankov) ---------------------------------------------------------------------- Message: 1 Date: Fri, 19 Feb 2010 20:36:08 +0000 From: Vladimir Tzankov <vt...@us...> Subject: clisp/tests mt.tst,1.24,1.25 To: cli...@li... Message-ID: <E1N...@sf...> Update of /cvsroot/clisp/clisp/tests In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv5479/tests Modified Files: mt.tst Log Message: (THREAD-JOIN): add :TIMEOUT argument Index: mt.tst =================================================================== RCS file: /cvsroot/clisp/clisp/tests/mt.tst,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- mt.tst 16 Feb 2010 22:55:34 -0000 1.24 +++ mt.tst 19 Feb 2010 20:36:06 -0000 1.25 @@ -118,6 +118,9 @@ (thread-name *th2*) *TH2* (thread-active-p *th2*) T +(multiple-value-list (thread-join *th1* :timeout 0)) (NIL :TIMEOUT) +(multiple-value-list (thread-join *th1* :timeout 1)) (NIL :TIMEOUT) + (progn (thread-interrupt *th1* :function #'mutex-unlock :arguments (list *mu2*)) (thread-interrupt *th1* :function #'mutex-unlock :arguments (list *mu2*)) @@ -138,6 +141,8 @@ :function t) *th1*) T (thread-join *th1*) NIL +(multiple-value-list (thread-join *th1* :timeout 0)) (NIL NIL) +(multiple-value-list (thread-join *th1* :timeout 1)) (NIL NIL) (thread-active-p *th1*) NIL (prin1-to-string *th1*) "#<INACTIVE THREAD :LAMBDA>" ------------------------------ Message: 2 Date: Fri, 19 Feb 2010 20:36:08 +0000 From: Vladimir Tzankov <vt...@us...> Subject: clisp/src ChangeLog, 1.7251, 1.7252 subr.d, 1.276, 1.277 subrkw.d, 1.70, 1.71 zthread.d, 1.78, 1.79 To: cli...@li... Message-ID: <E1N...@sf...> Update of /cvsroot/clisp/clisp/src In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv5479/src Modified Files: ChangeLog subr.d subrkw.d zthread.d Log Message: (THREAD-JOIN): add :TIMEOUT argument Index: subrkw.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/subrkw.d,v retrieving revision 1.70 retrieving revision 1.71 diff -u -d -r1.70 -r1.71 --- subrkw.d 15 Feb 2010 20:44:45 -0000 1.70 +++ subrkw.d 19 Feb 2010 20:36:06 -0000 1.71 @@ -224,6 +224,8 @@ s(make_thread) v(3, (kw(function),kw(override),kw(arguments))) s(thread_interrupt) +v(1, (kw(timeout))) +s(thread_join) v(2, (kw(name),kw(recursive_p))) s(make_mutex) v(1, (kw(timeout))) Index: zthread.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/zthread.d,v retrieving revision 1.78 retrieving revision 1.79 diff -u -d -r1.78 -r1.79 --- zthread.d 16 Feb 2010 22:55:34 -0000 1.78 +++ zthread.d 19 Feb 2010 20:36:06 -0000 1.79 @@ -549,24 +549,32 @@ VALUES1(TheThread(obj)->xth_name); } -LISPFUNNR(thread_join,1) -{ /* (THREAD-JOIN thread) */ - STACK_0=check_thread(STACK_0); - if (!boundp(TheThread(STACK_0)->xth_values)) { +LISPFUN(thread_join,seclass_read,1,0,norest,key,1,(kw(timeout))) +{ /* (THREAD-JOIN thread [:timeout]) */ + var bool timeout=false; + STACK_1=check_thread(STACK_1); + if (!boundp(TheThread(STACK_1)->xth_values)) { /* thread is still running */ - var gcv_object_t *thr_ = &STACK_0; + var gcv_object_t *thr_ = &STACK_1; + var gcv_object_t *timeout_ = &STACK_0; WITH_LISP_MUTEX_LOCK(0,false,&TheThread(*thr_)->xth_join_lock,{ - while (!boundp(TheThread(*thr_)->xth_values)) { + while (!timeout && !boundp(TheThread(*thr_)->xth_values)) { /* wait on the join exemption */ pushSTACK(TheThread(*thr_)->xth_join_exemption); pushSTACK(TheThread(*thr_)->xth_join_lock); - funcall(L(exemption_wait),2); + pushSTACK(S(Ktimeout)); pushSTACK(*timeout_); + funcall(L(exemption_wait),4); + timeout = eq(value1, NIL); } }); } - /* for sure we have thread's xth_values bound */ - VALUES2(TheThread(STACK_0)->xth_values, thread_killedp(STACK_0) ? NIL : T); - skipSTACK(1); + if (!timeout) { + /* for sure we have thread's xth_values bound */ + VALUES2(TheThread(STACK_1)->xth_values, thread_killedp(STACK_1) ? NIL : T); + } else { + VALUES2(NIL,S(Ktimeout)); /* timeout */ + } + skipSTACK(2); } LISPFUNN(thread_active_p,1) Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.7251 retrieving revision 1.7252 diff -u -d -r1.7251 -r1.7252 --- ChangeLog 18 Feb 2010 22:22:59 -0000 1.7251 +++ ChangeLog 19 Feb 2010 20:36:05 -0000 1.7252 @@ -1,3 +1,9 @@ +2010-02-19 Vladimir Tzankov <vtz...@gm...> + + * zthread.d (THREAD-JOIN): add :TIMEOUT argument (on timeout return + values are: NIL; :TIMEOUT) + * subr.d, subrkw.d: ditto + 2010-02-18 Sam Steingold <sd...@gn...> * package.d (PACKAGE-ITERATE): remove unused variable Index: subr.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/subr.d,v retrieving revision 1.276 retrieving revision 1.277 diff -u -d -r1.276 -r1.277 --- subr.d 15 Feb 2010 20:44:45 -0000 1.276 +++ subr.d 19 Feb 2010 20:36:06 -0000 1.277 @@ -1432,7 +1432,7 @@ (kw(function),kw(override),kw(arguments))) LISPFUNN(threadp,1) LISPFUNNR(thread_name,1) -LISPFUNNR(thread_join,1) +LISPFUN(thread_join,seclass_read,1,0,norest,key,1,(kw(timeout))) LISPFUNN(thread_active_p,1) LISPFUNN(current_thread,0) LISPFUNN(list_threads,0) ------------------------------ Message: 3 Date: Fri, 19 Feb 2010 20:59:29 +0000 From: Vladimir Tzankov <vt...@us...> Subject: clisp/src ChangeLog,1.7252,1.7253 zthread.d,1.79,1.80 To: cli...@li... Message-ID: <E1N...@sf...> Update of /cvsroot/clisp/clisp/src In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv10058/src Modified Files: ChangeLog zthread.d Log Message: (SET-SYMBOL-VALUE-THREAD): fix stack layout on unbound_variable error Index: zthread.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/zthread.d,v retrieving revision 1.79 retrieving revision 1.80 diff -u -d -r1.79 -r1.80 --- zthread.d 19 Feb 2010 20:36:06 -0000 1.79 +++ zthread.d 19 Feb 2010 20:59:27 -0000 1.80 @@ -660,7 +660,8 @@ } else { /* specific thread specified */ var uintL idx=TheSymbol(STACK_2)->tls_index; if (idx == SYMBOL_TLS_INDEX_NONE) { /* not special variable */ - skipSTACK(2); /* value + thread */ + skipSTACK(1); /* skip value */ + STACK_0 = STACK_1; /* = symbol (CELL-ERROR Slot NAME, symbol) */ pushSTACK(S(set_symbol_value_thread)); error(unbound_variable,GETTEXT("~S: ~S is not per thread special variable")); } else { /* let's set the per thread value */ Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.7252 retrieving revision 1.7253 diff -u -d -r1.7252 -r1.7253 --- ChangeLog 19 Feb 2010 20:36:05 -0000 1.7252 +++ ChangeLog 19 Feb 2010 20:59:27 -0000 1.7253 @@ -1,5 +1,10 @@ 2010-02-19 Vladimir Tzankov <vtz...@gm...> + * zthread.d (SET-SYMBOL-VALUE-THREAD): fix stack layout on + unbound_variable error + +2010-02-19 Vladimir Tzankov <vtz...@gm...> + * zthread.d (THREAD-JOIN): add :TIMEOUT argument (on timeout return values are: NIL; :TIMEOUT) * subr.d, subrkw.d: ditto ------------------------------ ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev ------------------------------ _______________________________________________ clisp-cvs mailing list cli...@li... https://lists.sourceforge.net/lists/listinfo/clisp-cvs End of clisp-cvs Digest, Vol 46, Issue 11 ***************************************** |