[Stackless] monkeypatching

lars van Gemerden lars at rational-it.com
Sat Nov 30 23:48:09 CET 2013


sorry,

patch_all seemed to simple, question was a bit rethoric ;-) tried it 2 mins
after pressing send just in case and indeed no cigar.

I am trying to get this demo running and all kinds of last minute #### is
popping up.

I tried reading the source but it doesn't click; i am not familiar with
using sockets etc. at all.

e.g.

- do i need 'stacklessio'?
- can i (essentially) just put a stackless.schedule() (or
OpenTasklets.schedule() in the code below) in the serve_forever loop?
- will this work at all with an adapted scheduler like this:

class OpenTasklets(object):

    _stop = False

    @classmethod
    def run(cls, maxcount = None):
        cls.schedule_channel = stackless.channel()
        cls.schedule_channel.preference = 1
        counter = 0
        OpenTasklets._stop = False
        while stackless.getruncount() != 1:
            stackless.run()
            cls.reschedule(cls._stop or (maxcount and counter > maxcount))
            counter += 1

    @classmethod
    def schedule(cls):
        if cls.schedule_channel.receive():
            raise TaskletExit

    @classmethod
    def reschedule(cls, stop = False):
        while cls.schedule_channel.balance < 0:
            cls.schedule_channel.send(stop)

Any help is appreciated ..

Lars




On Sat, Nov 30, 2013 at 8:53 PM, Richard Tew <richard.m.tew at gmail.com>wrote:

> Lars :-)
>
> Yes, there is no documentation for stacklesslib yet.  To use it, you
> really need to be willing to read the source code.
>
> You should already know whether calling patch_all would be enough.  It
> would have been something you could have tried immediately, rather
> than asking the list and waiting.
>
> Cheers,
> Richard.
>
> On 11/30/13, lars van Gemerden <lars at rational-it.com> wrote:
> > Hi all,
> >
> > I though i could avoid it to run my demo but it seems i need to let the
> > webserver (simple server?, single thread, 'bottle' micro framework) yield
> > to the scheduler i am using. I have downloaded stacklesslib 1.0.3, but
> > can't find any documentation to help with monkeypatching.
> >
> > - Do i just run patch_all at the start of the program?
> >
> > Any help is very welcome ..
> >
> > Cheers, Lars
> >
> > --
> > ====================================
> > Lars van Gemerden
> > lars at rational-it.com
> > +31 6 26 88 55 39
> > ====================================
> >
>
> _______________________________________________
> Stackless mailing list
> Stackless at stackless.com
> http://www.stackless.com/mailman/listinfo/stackless
>



-- 
====================================
Lars van Gemerden
lars at rational-it.com
+31 6 26 88 55 39
====================================
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.stackless.com/pipermail/stackless/attachments/20131130/34af1a02/attachment.html>


More information about the Stackless mailing list