Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(136)

Unified Diff: third_party/twisted_8_1/twisted/internet/selectreactor.py

Issue 12261012: Remove third_party/twisted_8_1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/twisted_8_1/twisted/internet/selectreactor.py
diff --git a/third_party/twisted_8_1/twisted/internet/selectreactor.py b/third_party/twisted_8_1/twisted/internet/selectreactor.py
deleted file mode 100644
index 0d79e55fb3a4f77a087642fed8fa467f61147382..0000000000000000000000000000000000000000
--- a/third_party/twisted_8_1/twisted/internet/selectreactor.py
+++ /dev/null
@@ -1,204 +0,0 @@
-# -*- test-case-name: twisted.test.test_internet -*-
-# Copyright (c) 2001-2007 Twisted Matrix Laboratories.
-# See LICENSE for details.
-
-
-"""
-Select reactor
-
-Maintainer: U{Itamar Shtull-Trauring<mailto:twisted@itamarst.org>}
-"""
-
-from time import sleep
-import sys
-import select
-from errno import EINTR, EBADF
-
-from zope.interface import implements
-
-from twisted.internet.interfaces import IReactorFDSet
-from twisted.internet import error
-from twisted.internet import posixbase
-from twisted.python import log
-from twisted.python.runtime import platformType
-
-
-def win32select(r, w, e, timeout=None):
- """Win32 select wrapper."""
- if not (r or w):
- # windows select() exits immediately when no sockets
- if timeout is None:
- timeout = 0.01
- else:
- timeout = min(timeout, 0.001)
- sleep(timeout)
- return [], [], []
- # windows doesn't process 'signals' inside select(), so we set a max
- # time or ctrl-c will never be recognized
- if timeout is None or timeout > 0.5:
- timeout = 0.5
- r, w, e = select.select(r, w, w, timeout)
- return r, w + e, []
-
-if platformType == "win32":
- _select = win32select
-else:
- _select = select.select
-
-# Exceptions that doSelect might return frequently
-_NO_FILENO = error.ConnectionFdescWentAway('Handler has no fileno method')
-_NO_FILEDESC = error.ConnectionFdescWentAway('Filedescriptor went away')
-
-class SelectReactor(posixbase.PosixReactorBase):
- """
- A select() based reactor - runs on all POSIX platforms and on Win32.
-
- @ivar _reads: A dictionary mapping L{FileDescriptor} instances to arbitrary
- values (this is essentially a set). Keys in this dictionary will be
- checked for read events.
-
- @ivar _writes: A dictionary mapping L{FileDescriptor} instances to
- arbitrary values (this is essentially a set). Keys in this dictionary
- will be checked for writability.
- """
- implements(IReactorFDSet)
-
- def __init__(self):
- """
- Initialize file descriptor tracking dictionaries and the base class.
- """
- self._reads = {}
- self._writes = {}
- posixbase.PosixReactorBase.__init__(self)
-
-
- def _preenDescriptors(self):
- log.msg("Malformed file descriptor found. Preening lists.")
- readers = self._reads.keys()
- writers = self._writes.keys()
- self._reads.clear()
- self._writes.clear()
- for selDict, selList in ((self._reads, readers),
- (self._writes, writers)):
- for selectable in selList:
- try:
- select.select([selectable], [selectable], [selectable], 0)
- except Exception, e:
- log.msg("bad descriptor %s" % selectable)
- self._disconnectSelectable(selectable, e, False)
- else:
- selDict[selectable] = 1
-
-
- def doSelect(self, timeout):
- """
- Run one iteration of the I/O monitor loop.
-
- This will run all selectables who had input or output readiness
- waiting for them.
- """
- while 1:
- try:
- r, w, ignored = _select(self._reads.keys(),
- self._writes.keys(),
- [], timeout)
- break
- except ValueError, ve:
- # Possibly a file descriptor has gone negative?
- log.err()
- self._preenDescriptors()
- except TypeError, te:
- # Something *totally* invalid (object w/o fileno, non-integral
- # result) was passed
- log.err()
- self._preenDescriptors()
- except (select.error, IOError), se:
- # select(2) encountered an error
- if se.args[0] in (0, 2):
- # windows does this if it got an empty list
- if (not self._reads) and (not self._writes):
- return
- else:
- raise
- elif se.args[0] == EINTR:
- return
- elif se.args[0] == EBADF:
- self._preenDescriptors()
- else:
- # OK, I really don't know what's going on. Blow up.
- raise
- _drdw = self._doReadOrWrite
- _logrun = log.callWithLogger
- for selectables, method, fdset in ((r, "doRead", self._reads),
- (w,"doWrite", self._writes)):
- for selectable in selectables:
- # if this was disconnected in another thread, kill it.
- # ^^^^ --- what the !@#*? serious! -exarkun
- if selectable not in fdset:
- continue
- # This for pausing input when we're not ready for more.
- _logrun(selectable, _drdw, selectable, method, dict)
-
- doIteration = doSelect
-
- def _doReadOrWrite(self, selectable, method, dict):
- try:
- why = getattr(selectable, method)()
- handfn = getattr(selectable, 'fileno', None)
- if not handfn:
- why = _NO_FILENO
- elif handfn() == -1:
- why = _NO_FILEDESC
- except:
- why = sys.exc_info()[1]
- log.err()
- if why:
- self._disconnectSelectable(selectable, why, method=="doRead")
-
- def addReader(self, reader):
- """
- Add a FileDescriptor for notification of data available to read.
- """
- self._reads[reader] = 1
-
- def addWriter(self, writer):
- """
- Add a FileDescriptor for notification of data available to write.
- """
- self._writes[writer] = 1
-
- def removeReader(self, reader):
- """
- Remove a Selectable for notification of data available to read.
- """
- if reader in self._reads:
- del self._reads[reader]
-
- def removeWriter(self, writer):
- """
- Remove a Selectable for notification of data available to write.
- """
- if writer in self._writes:
- del self._writes[writer]
-
- def removeAll(self):
- return self._removeAll(self._reads, self._writes)
-
-
- def getReaders(self):
- return self._reads.keys()
-
-
- def getWriters(self):
- return self._writes.keys()
-
-
-
-def install():
- """Configure the twisted mainloop to be run using the select() reactor.
- """
- reactor = SelectReactor()
- from twisted.internet.main import installReactor
- installReactor(reactor)
-
-__all__ = ['install']
« no previous file with comments | « third_party/twisted_8_1/twisted/internet/reactor.py ('k') | third_party/twisted_8_1/twisted/internet/serialport.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698