[Stackless] Watchdog and Channel Receiving in C

Kristján Valur Jónsson kristjan at ccpgames.com
Tue Apr 19 12:17:08 CEST 2011


That's a very roundabout way to do it.
Simply set the channel's preference to 1 (sender preference) and the receiver will be scheduled to run in its own good time.
K

From: stackless-bounces at stackless.com [mailto:stackless-bounces at stackless.com] On Behalf Of David Butler
Sent: 18. apríl 2011 23:57
To: The Stackless Python Mailing List
Subject: Re: [Stackless] Watchdog and Channel Receiving in C


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


More information about the Stackless mailing list