chicken-users
[Top][All Lists]
Advanced

[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.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]