예제 #1
0
    def wait(self, poller, wait):
        assert wait in (Stream.W_CONNECT, Stream.W_RECV, Stream.W_SEND)

        if self.state == Stream.__S_DISCONNECTED:
            poller.immediate_wake()
            return

        if self.state == Stream.__S_CONNECTING:
            wait = Stream.W_CONNECT
        if wait == Stream.W_RECV:
            poller.fd_wait(self.socket, ovs.poller.POLLIN)
        else:
            poller.fd_wait(self.socket, ovs.poller.POLLOUT)
예제 #2
0
    def wait(self, poller, wait):
        assert wait in (Stream.W_CONNECT, Stream.W_RECV, Stream.W_SEND)

        if self.state == Stream.__S_DISCONNECTED:
            poller.immediate_wake()
            return

        if self.state == Stream.__S_CONNECTING:
            wait = Stream.W_CONNECT
        if wait == Stream.W_RECV:
            poller.fd_wait(self.socket, select.POLLIN)
        else:
            poller.fd_wait(self.socket, select.POLLOUT)
예제 #3
0
 def __wait_windows(self, poller, wait):
     if self.socket is not None:
         if wait == Stream.W_RECV:
             read_flags = (win32file.FD_READ |
                           win32file.FD_ACCEPT |
                           win32file.FD_CLOSE)
             try:
                 win32file.WSAEventSelect(self.socket,
                                          self._read.hEvent,
                                          read_flags)
             except pywintypes.error as e:
                 vlog.err("failed to associate events with socket: %s"
                          % e.strerror)
             poller.fd_wait(self._read.hEvent, ovs.poller.POLLIN)
         else:
             write_flags = (win32file.FD_WRITE |
                            win32file.FD_CONNECT |
                            win32file.FD_CLOSE)
             try:
                 win32file.WSAEventSelect(self.socket,
                                          self._write.hEvent,
                                          write_flags)
             except pywintypes.error as e:
                 vlog.err("failed to associate events with socket: %s"
                          % e.strerror)
             poller.fd_wait(self._write.hEvent, ovs.poller.POLLOUT)
     else:
         if wait == Stream.W_RECV:
             if self._read:
                 poller.fd_wait(self._read.hEvent, ovs.poller.POLLIN)
         elif wait == Stream.W_SEND:
             if self._write:
                 poller.fd_wait(self._write.hEvent, ovs.poller.POLLOUT)
         elif wait == Stream.W_CONNECT:
             return
예제 #4
0
 def __wait_windows(self, poller, wait):
     if self.socket is not None:
         if wait == Stream.W_RECV:
             read_flags = (win32file.FD_READ | win32file.FD_ACCEPT
                           | win32file.FD_CLOSE)
             try:
                 win32file.WSAEventSelect(self.socket, self._read.hEvent,
                                          read_flags)
             except pywintypes.error as e:
                 vlog.err("failed to associate events with socket: %s" %
                          e.strerror)
             poller.fd_wait(self._read.hEvent, ovs.poller.POLLIN)
         else:
             write_flags = (win32file.FD_WRITE | win32file.FD_CONNECT
                            | win32file.FD_CLOSE)
             try:
                 win32file.WSAEventSelect(self.socket, self._write.hEvent,
                                          write_flags)
             except pywintypes.error as e:
                 vlog.err("failed to associate events with socket: %s" %
                          e.strerror)
             poller.fd_wait(self._write.hEvent, ovs.poller.POLLOUT)
     else:
         if wait == Stream.W_RECV:
             if self._read:
                 poller.fd_wait(self._read.hEvent, ovs.poller.POLLIN)
         elif wait == Stream.W_SEND:
             if self._write:
                 poller.fd_wait(self._write.hEvent, ovs.poller.POLLOUT)
         elif wait == Stream.W_CONNECT:
             return
예제 #5
0
    def wait(self, poller, wait):
        assert wait in (Stream.W_CONNECT, Stream.W_RECV, Stream.W_SEND)

        if self.state == Stream.__S_DISCONNECTED:
            poller.immediate_wake()
            return

        if self.state == Stream.__S_CONNECTING:
            wait = Stream.W_CONNECT

        if sys.platform == 'win32':
            self.__wait_windows(poller, wait)
            return

        if wait == Stream.W_RECV:
            poller.fd_wait(self.socket, ovs.poller.POLLIN)
        else:
            poller.fd_wait(self.socket, ovs.poller.POLLOUT)
예제 #6
0
 def wait(self, poller):
     poller.fd_wait(self.socket, select.POLLIN)
예제 #7
0
파일: stream.py 프로젝트: albd/ovs
 def wait(self, poller):
     poller.fd_wait(self.socket, ovs.poller.POLLIN)
예제 #8
0
 def wait(self, poller):
     poller.fd_wait(self.socket, ovs.poller.POLLIN)
예제 #9
0
 def wait(self, poller):
     poller.fd_wait(self.socket, select.POLLIN)
예제 #10
0
 def wait(self, poller):
     if sys.platform != 'win32' or self.socket is not None:
         poller.fd_wait(self.socket, ovs.poller.POLLIN)
     else:
         poller.fd_wait(self.connect.hEvent, ovs.poller.POLLIN)
예제 #11
0
 def send_wait(self, poller):
     if sys.platform == 'win32':
         poller.fd_wait(self.connect.hEvent, ovs.poller.POLLIN)
     self.wait(poller, Stream.W_SEND)
예제 #12
0
 def wait(self, poller):
     if sys.platform != 'win32' or self.socket is not None:
         poller.fd_wait(self.socket, ovs.poller.POLLIN)
     else:
         poller.fd_wait(self.connect.hEvent, ovs.poller.POLLIN)
예제 #13
0
def crashprocessing_poll(poller):
    global watchmanager_inst

    watch_fd = watchmanager_inst.get_fd()
    poller.fd_wait(watch_fd, ovs.poller.POLLIN)
예제 #14
0
 def send_wait(self, poller):
     if sys.platform == 'win32':
         poller.fd_wait(self.connect.hEvent, ovs.poller.POLLIN)
     self.wait(poller, Stream.W_SEND)