[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] srfi-18 and callbacks
From: |
felix winkelmann |
Subject: |
Re: [Chicken-users] srfi-18 and callbacks |
Date: |
Fri, 11 Apr 2008 12:42:15 +0200 |
On Sat, Apr 5, 2008 at 8:10 PM, Jim Ursetto <address@hidden> wrote:
> Let's say I have two callback handlers registered and within the handlers I do
> a thread-sleep! or thread-yield!. The C caller is the same for both (it's a
> busy handler), they are just invoked with different data. Now this sequence
> of
> events occurs:
>
> thread 1 enters the callback
> thread 2 enters the callback
> thread 1 returns from the callback
>
> The strange results I get seem to indicate thread 1 is returning to C using
> the
> stack of thread 2.
>
> Is my approach fundamentally flawed? If this explanation doesn't make sense,
> I can try to write a self-contained demonstration.
>
Uh oh... This is a case that should probably be avoided. I couldn't even
say what exactly happens, but you will have to do some locking because
the Scheme thread-context will be different when you return from the
callback (as you have described above). When you say "thread 2 enters
the callback" does that mean that a context switch occurs while the
callback is executing? Perhaps you really send some code...
cheers,
felix