<p>It turns out that the problem was in how I was sending the message.  I was sending straight from C with PyChannel_Send(), and it was firing off all the code immediately.  If I instead spawn a tasklet that sends the message, everything is scheduled under the watchdog properly.</p>

<div class="gmail_quote">On Apr 18, 2011 6:26 PM, "Richard Tew" <<a href="mailto:richard.m.tew@gmail.com">richard.m.tew@gmail.com</a>> wrote:<br type="attribution">> On Tue, Apr 19, 2011 at 1:34 AM, Dave Butler <<a href="mailto:dave@hoppit.net">dave@hoppit.net</a>> wrote:<br>
> <br>>> I've browsed through some of the stackless code, and I'm not entirely sure<br>>> what is happening in there.  It appears to me that when data is received on<br>>> a channel, it immediately fires off the rest of the function rather than<br>
>> scheduling it for execution?  I may be entirely wrong here...<br>>><br>>> Has anyone encountered this at all?  I'm happy to delve into and make<br>>> changes to the stackless code if necessary, or if someone knows a better<br>
>> method to achieve the same thing I would appreciate any pointers.  I would<br>>> prefer to go under the assumption that script-writers do NOT know how<br>>> stackless works and should not be required to do any cooperative scheduling<br>
>> themselves.  Feel free to let me know if I was unclear on any particular<br>>> points.<br>>><br>> <br>> Hi Dave,<br>> <br>> How a channel behaves with regard to scheduling when an operation is<br>
> performed on it, is determined by its preference attribute.  See this entry:<br>> <br>> <br>> <a href="http://disinterest.org/resource/stackless/2.6-docs-html/library/stackless/channels.html#channel.preference">http://disinterest.org/resource/stackless/2.6-docs-html/library/stackless/channels.html#channel.preference</a><br>
> <br>> And this entry:<br>> <br>> <br>> <a href="http://disinterest.org/resource/stackless/2.6-docs-html/library/stackless/channels.html#channel.schedule_all">http://disinterest.org/resource/stackless/2.6-docs-html/library/stackless/channels.html#channel.schedule_all</a><br>
> <br>> Cheers,<br>> Richard.<br></div>