[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] 1095 (prerelease) + some eggs
From: |
Joerg F. Wittenberger |
Subject: |
Re: [Chicken-users] 1095 (prerelease) + some eggs |
Date: |
21 Feb 2003 23:13:06 +0100 |
User-agent: |
Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Common Lisp) |
felix <address@hidden> writes:
> Hi!
>
> A prerelease of 0.1095 can be found at:
>
> http://www.call-with-current-continuation.org/chicken-0.1095.tar.gz
I replaced the socket.scm + multiplex.scm stuff in Askemos[1] with the
new tcp.scm and compiled with the cvs version of chicken.
While the code runs pretty stable on rscheme, I see:
address@hidden:~/build/Askemos-0.7.0$ ./chicken/askemos chicken/config.scm
mechanism/debug-access.scm
Fri, 21 Feb 2003 22:50:58 +0100 Debug access open at port 7070.
Fri, 21 Feb 2003 22:50:58 +0100 Take off.
Error: deadlock
The problem can be in a) the new scheduler b) tcp.scm c) askemos. I
guess it's not askemos for two reasons:
a) Both the rscheme and the chicken version implement the following
function to run server threads. Here the chicken version:
(define (askemos:run-tcp-server
host port connection-handler
maximum-semaphore name)
(define request-queue (tcp-listen port))
(define (exception-handler ex)
(receive
(title msg args rest) (exception->fields ex)
(logerr "run-tcp-server (host ~a port ~a) ~a ~a ~a\n"
host port title msg args)))
(let loop ()
(handle-exceptions
ex (exception-handler ex)
(receive
(in-port out-port) (tcp-accept request-queue)
(receive
(local remote) (tcp-addresses in-port out-port)
(if maximum-semaphore (semaphore-wait maximum-semaphore))
(thread-start!
(make-thread
(lambda ()
(handle-exceptions
ex (exception-handler ex)
(connection-handler in-port remote))
(if maximum-semaphore (semaphore-signal maximum-semaphore))
(close-input-port in-port)
(handler-case (close-output-port out-port)
((<condition>)))
(file-close fd))
name)))))
(loop)))
The rscheme version of Askemos appears to run pretty stable.
b) I just adapted the above code from an older version, which used
socket.scm+multiplex.scm from chickenlib. This code (remember
discussion about slow i/o...) happend to run as well.
There where no other changes to the code recently.
OK, both those reasons are no more than a hint. The bug could still
could be anywhere.
> Some eggs to play with:
>
> http://www.call-with-current-continuation.org/datatype.egg
> http://www.call-with-current-continuation.org/regex-case.egg
> http://www.call-with-current-continuation.org/record-case.egg
> http://www.call-with-current-continuation.org/make.egg
> http://www.call-with-current-continuation.org/awk.egg
> http://www.call-with-current-continuation.org/base64.egg
>
> Make sure you have write permissions for your library directory
> (run `csi -setup' when in doubt) and enter
Uhm, plans to have at least a private library directory? (Or is this
already there?)
> csi -setup datatype
> csi -setup make
>
> etc.
>
> Documentation is weak, check the sources for more information.
Egg ;-) but what's that for a funny format?
> For the adventurous, a little HTTP server:
>
> http://www.call-with-current-continuation.org/ssax.egg
> http://www.call-with-current-continuation.org/http.egg
>
> Here a very simple example of it's use:
> http://www.call-with-current-continuation.org/server
> http://www.call-with-current-continuation.org/client
May I ask you a favor: can we try to integrate these implementations
with the Askemos code. I somewhat hate too much duplication in the
code base.
> (you can run the `server' script and point your browser
> to "http//localhost:4242/")
>
>
> cheers,
> felix
>
>
>
> _______________________________________________
> Chicken-users mailing list
> address@hidden
> http://mail.nongnu.org/mailman/listinfo/chicken-users
Cheers
/Jörg
[1] www.askemos.org BTW: by latest tests approximately as fast as
apache on static data, SXPath and some XSLT and Scheme + some DSSSL
supported.
--
The worst of harm may often result from the best of intentions.
Re: [Chicken-users] 1095 (prerelease) + some eggs, William Annis, 2003/02/24