This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Threads versus event loop


A design question; I want to write a "processor farm" client in guile.
This shares a relatively large computational problem (in circuit optimisation)
over servers running on our network, giving each server another part of the 
job when it finishes the last. At some points everything has to wait,
and all the servers get re-synched (e.g. if a global change in circuit 
parameters is made). I have an old version in c, which uses an event loop, 
and waits in select for the servers to reply.

It is easy to see how I can just replace the c programme with a scheme
based one, then extend it with better optimisation strategies etc. 
Another alternative is to use a multithreaded design, e.g.  with communication 
with each server occuring in its own thread, and mutexs to handle 
interthread interactions. The client programme does very little work compared
with the servers, so client efficiency is not a big deal, provided busy waits 
can be avoided. What do people on the list think is best approach? There is 
limited documentation about the thread system, and most of that is marked as 
due for revision. 

Julian Satchell
<satchell@dra.hmg.gb>

The opinions expressed above are my own, and do not represent those of any
organisation or body.