[Spread-users] Designing a multithreaded app
John David Duncan
jdd at efn.org
Mon Dec 12 11:33:10 EST 2005
Hi again,
>> I'm about to start working on a multi-threaded Spread application
>> for the first time, and I have a very basic question:
>> How many times do I call SP_connect()? Do I connect once and get
>> a single mailbox that all threads can share, or should each
>> thread connect inidvidually?
> It really depends on what you want to do and the architecture of
> your system.
> Both options are available with Spread, although when using only
> one connection
> with multiple threads you will need to use the thread-safe library
> and not the
> regular library. There are also implications, mainly in terms of
> blocked
> threads if more than one of them would like to read a message at
> the same time.
Here's an issue that's come up...
I have one thread (and only one, ever) looping in SP_receive for a
mailbox.
I was thinking I could call SP_leave on that mailbox from another
thread. The receiver would then get a self-leave message and be able
to clean up. But this doesn't seem to be happening... the receiver
gets the remaining regular messages that the local daemon had stored
for it, and then calls SP_receive again and blocks forever, never
getting the self-leave.
Is there just a bug in my code somewhere, or am I maybe expecting the
wrong behavior?
- JD
More information about the Spread-users
mailing list