I've forgot to send this to the list.
---------- Forwarded message ----------
From: Kiyoshi Mizumaru <kiyoshi.mizumaru(a)gmail.com>
Date: Mon, Mar 26, 2012 at 1:02 PM
Subject: Re: [Bordeaux-threads-devel] join-thread in allegro
To: Stelian Ionescu <sionescu(a)cddr.org>
I think it's good idea to solve this without defining a new process class.
But in b03b582, make-lock, with-lock-held and current-thread are used
prior to be
defined, and lead to compile error.
Moving the "Thread creation" section solved this and works as expected:
https://bitbucket.org/kmizumar/bordeaux-threads/changeset/02cc8c9b4ce7
Kiyoshi
--
Kiyoshi Mizumaru <kiyoshi.mizumaru(a)gmail.com>
On Mon, Mar 26, 2012 at 8:24 AM, Stelian Ionescu <sionescu(a)cddr.org> wrote:
> On Mon, 2012-03-26 at 00:35 +0900, Kiyoshi Mizumaru wrote:
>> Hi,
>>
>> Even though the api documentation doesn't mention it, I've found that
>> join-thread is expected to have a value of the thread's function in some
>> lisp implementations.
>>
>> (asdf:test-system :sqlite) always fails in concurrent access test since
>> it checks return values of join-thread and join-thread's value is nil in
>> current implementation for Allegro CL. The followings are changes I've made
>> to correct this problem, so please have a look at it.
>>
>> https://bitbucket.org/kmizumar/bordeaux-threads/changeset/5de529f36b92
>> https://bitbucket.org/kmizumar/bordeaux-threads/changeset/549bbcdcf794
>>
>> Thanks in advance and sorry for my poor English, I'm still learning it.
>
> I committed a different implementation that uses a hash-table to store
> the return values, which doesn't require us to create a new process
> class. Please test and is some test fails, send the output
>
> --
> Stelian Ionescu a.k.a. fe[nl]ix
> Quidquid latine dictum sit, altum videtur.
> http://common-lisp.net/project/iolib
>
>
> _______________________________________________
> Bordeaux-threads-devel mailing list
> Bordeaux-threads-devel(a)common-lisp.net
> http://lists.common-lisp.net/cgi-bin/mailman/listinfo/bordeaux-threads-devel
>
Hi,
Even though the api documentation doesn't mention it, I've found that
join-thread is expected to have a value of the thread's function in some
lisp implementations.
(asdf:test-system :sqlite) always fails in concurrent access test since
it checks return values of join-thread and join-thread's value is nil in
current implementation for Allegro CL. The followings are changes I've made
to correct this problem, so please have a look at it.
https://bitbucket.org/kmizumar/bordeaux-threads/changeset/5de529f36b92https://bitbucket.org/kmizumar/bordeaux-threads/changeset/549bbcdcf794
Thanks in advance and sorry for my poor English, I'm still learning it.
Kiyoshi
--
Kiyoshi Mizumaru <kiyoshi.mizumaru(a)gmail.com>
BTW, another tests issue I forgot to report:
On CMUCL bordeaux-threads test suite traps into some active
deadlock, produces 8 MB of '.' symbols in log, constantly runs GC
and finally dies when heap is exhausted.
Best regards,
- Anton
Hello.
In the scope of this project https://github.com/cl-test-grid/cl-test-grid
I and Robert Goldman run tests of CL libraries on various CL implementations.
Bordeaux threads tests fails on some implementations, sometimes due to
buts in the tests I suppose.
You may find reports here
http://common-lisp.net/project/cl-test-grid/
Probably the most convenient report to overview a single library
status is this one:
http://common-lisp.net/project/cl-test-grid/pivot_lib-lisp_ql.html
Between the test results for the recent version of quicklisp
and the previous one, bordeaux-threads has only one regression:
sbcl-1.0.54.45-a2bef14-macosx-x64.
Probably it's due to some bug (like race conditions) in the tests,
because the Qicklisp Blog doesn't list bordeaux-threads
between updated projects in the last distro update, and if it's true,
than the results are from the same bordeaux-threads
version. http://blog.quicklisp.org/2012/02/february-dist-update-now-available.html
Best regards,
- Anton
There's a new release of Bordeaux-Threads.
Noteworthy changes since 0.8.0:
* Update ABCL support, reimplementing locks based on
java.util.concurrent.locks.ReentrantLock and adding condition
variables - thanks to Mark Evenson
* Remove warning about threads not being supported, when
applicable
--
Stelian Ionescu a.k.a. fe[nl]ix
Quidquid latine dictum sit, altum videtur.
http://common-lisp.net/project/iolib
> Hi.
>
> New to the list. I noticed the Trac API gives the function name as
> THREAD-JOIN, which doesn't exist in bordeaux-threads under SBCL. However
> JOIN-THREAD does. Should one or the other be changed?
>
> Regards,
> Jeff Cunningham
Please consider the [following patch for ABCL against BORDEAUX-THREAD
HEAD][1]. The patch provides implementation of both BT locking
semantics (recursively head and not) by use of
[java.util.concurrent.locks ReentrantLock][2] as well as a (hopefully)
correct implementation of POSIX-style condition variable, and allows
non-blocking lock acquisition.
[1]:
http://slack.net/~evenson/abcl/hunchentoot/bordeaux-threads-abcl-20110215a.…
[2];
http://download.oracle.com/javase/6/docs/api/java/util/concurrent/locks/Ree…
--
"A screaming comes across the sky. It has happened before, but there
is nothing to compare to it now."
Hi
I am trying to use bordeaux threads.
Trying to figure out how to make output from a thread function appear in
slime instead of the lisp terminal.
The lisp I am using is
Clozure Common Lisp Version 1.6-r14468M (WindowsX8664)
I beleive I have the latest bordeaux threads
Following is my test code. I hope the intentions are clear.
What am I doing wrong or missing?
Code follows
Thanks,
-Antony
(asdf:oos 'asdf:load-op :bordeaux-threads)
(format t "~%appearing in slime")
(defun thread-test ()
(format t "~%appearing in lisp terminal: ~A"
(bordeaux-threads:thread-name
(bordeaux-threads:current-thread))))
(let ((bindings
'((*standard-input* . *standard-input*)
(*standard-output* . *standard-output*)
(*query-io* . *query-io*)
(*trace-output* . *trace-output*)))) ;;is this correct?
(dolist (name '("foo" "bar"))
(bordeaux-threads:make-thread #'thread-test
:name name
:initial-bindings bindings)))
Dear bordeaux-threads developers,
I have a patch that adds bt support for thread-wait and
thread-wait-with-timeout, modelled after the process-wait and
process-wait-with-timeout functions sported by several Lisp APIs.
This API should be considered a legacy compatibility API, as these
operations may have made sense long ago on timesharing monoprocessors,
but are necessarily expensive on multiprocessors. Nevertheless, we had
a use for them at ITA, and I threw together this compatibility
support, until we get our code cleaned up.
Please consider this patch for inclusion, though it has only been
lightly tested.
PS: I also have a patch to add XCVB support to bordeaux-threads,
though you might not be interested.
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
As the Chinese say, 1001 words is worth more than a picture. — John McCarthy
ABCL's multithreading symbols have moved to THREADS package (this was
deprecated with abcl-0.18 and removed with abcl-0.22).
Implement CONDITION-WAIT and CONDITION-NOTIFY for ABCL.
Use 10ms pause for ABCL's THREAD-YIELD.
--
"A screaming comes across the sky. It has happened before, but there
is nothing to compare to it now."