def _pop(self, block=True, timeout=None, left=False):
        """Removes and returns the an item from this GeventDeque.

        This is an internal method, called by the public methods
        pop() and popleft().
        """
        item  = None
        timer = None
        deque = self._deque
        empty = IndexError('pop from an empty deque')

        if block is False:
            if len(self._deque) > 0:
                item = deque.popleft() if left else deque.pop()
            else:
                raise empty
        else:
            try:
                if timeout is not None:
                    timer = gevent.Timeout(timeout, empty)
                    timer.start()

                while True:
                    self.notEmpty.wait()
                    if len(deque) > 0:
                        item = deque.popleft() if left else deque.pop()
                        break
            finally:
                if timer is not None:
                    timer.cancel()

        if len(deque) == 0:
            self.notEmpty.clear()

        return item
def _pop ( self , block = True , timeout = None , left = False ) : item = None timer = None deque = self . _deque empty = IndexError ( 'pop from an empty deque' ) if block is False : if len ( self . _deque ) > 0 : item = deque . popleft ( ) if left else deque . pop ( ) else : raise empty else : try : if timeout is not None : timer = gevent . Timeout ( timeout , empty ) timer . start ( ) while True : self . notEmpty . wait ( ) if len ( deque ) > 0 : item = deque . popleft ( ) if left else deque . pop ( ) break finally : if timer is not None : timer . cancel ( ) if len ( deque ) == 0 : self . notEmpty . clear ( ) return item
Removes and returns the an item from this GeventDeque.

        This is an internal method, called by the public methods
        pop() and popleft().