Twisted core has been proposed, but I believe the consensus was that
it wasn't desirable, generally.

I'm also pretty sure that people learn twisted because everyone learns
twisted.  It's one of those buzz-words ;).

As for task scheduling, I believe it was something like...

import asyncore
import time
import heapq

tasks = []

def schedule(delta, callme):
    heapq.heappush(tasks, (time.time()+delta, callme))

def loop_with_schedule(timeout=30):
    while 1:
        now = time.time()
        while tasks and tasks[0][0] < now:
            callme = heapq.heappop(tasks)[1]
            try:
                callme()
            except (KeyboardInterrupt, SystemExit):
                raise
            except:
                #do something useful
                pass
        thistimeout = timeout
        if tasks:
            thistimeout = max(min(thistimeout, tasks[0][0]-now), 0)

        asyncore.poll(timeout=thistimeout)

 - Josiah


On Fri, Feb 15, 2008 at 11:45 AM, Giampaolo Rodola' <[EMAIL PROTECTED]> wrote:
> On 15 Feb, 03:24, "Josiah Carlson" <[EMAIL PROTECTED]> wrote:
>
>  > As I stated 2+ and 6+ months ago, the patches I submitted 9+ months
>  > ago work (I've been using them in my own projects without issue).  The
>  > only issue with the bugfix/rearrangement that I last heard about with
>  > regards to the 2.x stuff was that I removed a class that no one was
>  > using in the wild, which I believe Giampaolo added in a subsequent
>  > patch in the last couple months.
>
>  I provided the patch for the other issue (look at what is specified in
>  ac_out_buffer_size) but I didn't re-add fifo and simple_producer
>  classes.
>  What should be done here? Re-add or discard them?
>  However, I will send to you by e-mail the modified asynchat version.
>  It is based on your patch therefore a first commit could be finally
>  done.
>
>
>  > My suggestion:
>  > 1. Apply the most recent fixes to 2.6 asyncore/asynchat that Giampaolo
>  > has updated.
>
> > 1.a. Figure out what the hell is up with OOB data, how to handle it,
>  > and stop making it use handle_expt().
>
>  If we want to leave OOB untouched shouldn't handle_expt be the right
>  place where manage such kind of events?
>  Alternatively we could also remove the OOB management at all (e.g.
>  Twisted does that by ignoring such kind of data).
>  OOB could be actually useful to implement some protocols such as FTP
>  (in details ABOR and STAT commands which require OOB data) but it
>  would be probably better not having it than having it but not
>  implemented properly.
>  I am saying this also because later or soonish we might need to care
>  of epoll and kqueue (http://bugs.python.org/issue1657).
>
>
>  > * Scheduled tasks are not a valid enhancement for either; anyone who
>  > wants them can trivially add them with their own asyncore.loop()
>  > variant and call asyncore.poll() as necessary (I did it in about 15
>  > lines in the summer of 2002, I hope others can do better now).  If you
>  > want my opinion on other async-related features, feel free to email me
>  > directly (use the gmail address you see here, then it ends up in my
>  > inbox, not the overflowing python folder).
>
>  How's your solution? Could you post it here or send it to me by mail?
>  IMO scheduled tasks is a very important feature for implementing a lot
>  of interesting stuff like connection timeouts and bandwidth
>  throttling.
>  A lot of people have to learn/use Twisted just because of that.
>  Moreover I think that Bill Janssen could need that feature to make the
>  ssl module work with asyncore.
>
>
>  PS - I have been reading this mailing list for a short time therefore
>  I have no clue whether or not someone has ever thought about including
>  the Twisted core - only itself - in Python stdlib.
>
>
> _______________________________________________
>  Python-Dev mailing list
>  Python-Dev@python.org
>  http://mail.python.org/mailman/listinfo/python-dev
>  Unsubscribe: 
> http://mail.python.org/mailman/options/python-dev/josiah.carlson%40gmail.com
>
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to