Tim Roberts wrote:
> Well, "select" is not just a drop-in replacement for "poll", although it
> can serve the same function.  Without looking at the rest of the source,
> you probably want something like this:
>
>    def Run( self ):
>         self._fdmap = {}
>         self._PrepareSockets()
>         while 1:
>             fdi = select.select( self._fdmap, [], [] )[0]
>   

I just realized this is not correct.  _fdmap is a dictionary, and it
needs to be a list of FDs.  _fdmap probably contains the list of read
FDs, write FDs, and other FDs -- exactly the way select.select wants
them -- but you'll have to look inside _PrepareSockets to know how to
pull out the three individual lists.

OK, after looking at the source, I think the list of fds is actually the
keys of the dictionary, so we need two small changes:

   def Run( self ):
        self._fdmap = {}
        self._PrepareSockets()
        while 1:
            fdi = select.select( self._fdmap.keys(), [], [] )[0]
            if fdi:
                self._ProcessInput( self._fdmap[fdi[0]] )
            else:
                logger.error( "select returned empty." )

-- 
Tim Roberts, t...@probo.com
Providenza & Boekelheide, Inc.

_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to