[plt-scheme] threads and mzscheme (again)

From: Hans Oesterholt-Dijkema (hdnews at gawab.com)
Date: Mon Jun 6 04:27:10 EDT 2005

Hi All,

Recently, I had a problem. A database query in C blocked
the entire mzscheme environment. I solved this by using
scheme_block_until, and executing the database query in
an operating system thread.

Results of this were very satisfying and can be found here:

http://www.elemental-programming.org/epwiki/scheme%20oodb-perftests.html

Now, the queries in these performance tests were executed
directly from scheme, using a function call to call the functions in
the client-handler, see the picture in:

http://www.elemental-programming.org/epwiki/scheme%20oodb.html

Now, I've added the /client-connection-handler/, which handles the
TCP/IP protocol, i.e., the OODB has been given a TCP/IP interface.

Clients can call RPC, via the client-connection-handler, functions
in the /client-handler/.  client-connection-handlers are started as a
mzscheme thread from a client acceptor (not in the picture), which
handles TCP accepts.

Suddenly, I'm having the same behaviour as before again. The
database queries seem to be executed synchronously.

What can be the cause of this? Is it multiple scheme_block_until()
calls? (because maybe scheme_block_until() is also used with the
TCP/IP mechanisms in mzscheme)?

Thanks in advance for any answers, I'm really lost here!

Hans Oesterholt.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20050606/34db0026/attachment.html>

Posted on the users mailing list.