예제 #1
0
	def __init__(self, useGtk=True):
		self._simtag = None
		self._reads = set()
		self._writes = set()
		self._sources = {}
		posixbase.PosixReactorBase.__init__(self)
		# pre 2.3.91 the glib iteration and mainloop functions didn't release
		# global interpreter lock, thus breaking thread and signal support.
		if getattr(gobject, "pygtk_version", ()) >= (2, 3, 91) and not useGtk:
			self.context = gobject.main_context_default()
			self.__pending = self.context.pending
			self.__iteration = self.context.iteration
			self.loop = gobject.MainLoop()
			self.__crash = self.loop.quit
			self.__run = self.loop.run
		else:
			import gtk
			self.__pending = gtk.events_pending
			self.__iteration = gtk.main_iteration
			self.__crash = _our_mainquit
			self.__run = gtk.main
예제 #2
0
    def _removeAll(self, readers, writers):
        """
		Remove all readers and writers, and list of removed L{IReadDescriptor}s
		and L{IWriteDescriptor}s.

		Meant for calling from subclasses, to implement removeAll, like::

		  def removeAll(self):
			  return self._removeAll(self._reads, self._writes)

		where C{self._reads} and C{self._writes} are iterables.
		"""
        removedReaders = set(readers) - self._internalReaders
        for reader in removedReaders:
            self.removeReader(reader)

        removedWriters = set(writers)
        for writer in removedWriters:
            self.removeWriter(writer)

        return list(removedReaders | removedWriters)
예제 #3
0
	def _removeAll(self, readers, writers):
		"""
		Remove all readers and writers, and list of removed L{IReadDescriptor}s
		and L{IWriteDescriptor}s.

		Meant for calling from subclasses, to implement removeAll, like::

		  def removeAll(self):
			  return self._removeAll(self._reads, self._writes)

		where C{self._reads} and C{self._writes} are iterables.
		"""
		removedReaders = set(readers) - self._internalReaders
		for reader in removedReaders:
			self.removeReader(reader)

		removedWriters = set(writers)
		for writer in removedWriters:
			self.removeWriter(writer)

		return list(removedReaders | removedWriters)
예제 #4
0
    def __init__(self):
        self.threadCallQueue = []
        self._eventTriggers = {}
        self._pendingTimedCalls = []
        self._newTimedCalls = []
        self._cancellations = 0
        self.running = False
        self._started = False
        self._justStopped = False
        # reactor internal readers, e.g. the waker.
        self._internalReaders = set()
        self.waker = None

        # Arrange for the running attribute to change to True at the right time
        # and let a subclass possibly do other things at that time (eg install
        # signal handlers).
        self.addSystemEventTrigger("during", "startup", self._reallyStartRunning)
        self.addSystemEventTrigger("during", "shutdown", self.crash)
        self.addSystemEventTrigger("during", "shutdown", self.disconnectAll)

        if platform.supportsThreads():
            self._initThreads()
        self.installWaker()
예제 #5
0
	def __init__(self):
		self.threadCallQueue = []
		self._eventTriggers = {}
		self._pendingTimedCalls = []
		self._newTimedCalls = []
		self._cancellations = 0
		self.running = False
		self._started = False
		self._justStopped = False
		# reactor internal readers, e.g. the waker.
		self._internalReaders = set()
		self.waker = None

		# Arrange for the running attribute to change to True at the right time
		# and let a subclass possibly do other things at that time (eg install
		# signal handlers).
		self.addSystemEventTrigger(
			'during', 'startup', self._reallyStartRunning)
		self.addSystemEventTrigger('during', 'shutdown', self.crash)
		self.addSystemEventTrigger('during', 'shutdown', self.disconnectAll)

		if platform.supportsThreads():
			self._initThreads()
		self.installWaker()
예제 #6
0
	def __init__(self):
		base.ReactorBase.__init__(self)
		self.port = _iocp.CompletionPort()
		self.handles = set()
예제 #7
0
 def __init__(self):
     base.ReactorBase.__init__(self)
     self.port = _iocp.CompletionPort()
     self.handles = set()