code: def notifyPop(self, queue, length = 1):
          '''
          Internal notify for sub-queues been poped
          
          :returns: List of any events generated by this pop
          '''
          self.totalSize = self.totalSize - length
          ret1 = []
          ret2 = []
          if self.isWaited and self.canAppend():
              self.isWaited = False
              ret1.append(QueueCanWriteEvent(self))
          if self.isWaitEmpty and not self:
              self.isWaitEmpty = False
              ret2.append(QueueIsEmptyEvent(self))
          if self.parent is not None:
              pr = self.parent.notifyPop(self, length)
              ret1 += pr[0]
              ret2 += pr[1]
          newblocked =  not self.canPop()
          if newblocked != self.blocked:
              self.blocked = newblocked
              if self.parent is not None:
                  self.parent.notifyBlock(self, newblocked)
          return (ret1, ret2f notifyPop(self, queue, length = 1):
          '''
          Internal notify for sub-queues been poped
          
          :returns: List of any events generated by this pop
          '''
          self.totalSize = self.totalSize - length
          ret1 = []
          ret2 = []
          if self.isWaited and self.canAppend():
              self.isWaited = False
              ret1.append(QueueCanWriteEvent(self))
          if self.isWaitEmpty and not self:
              self.isWaitEmpty = False
              ret2.append(QueueIsEmptyEvent(self))
          if self.parent is not None:
              pr = self.parent.notifyPop(self, length)
              ret1 += pr[0]
              ret2 += pr[1]
          newblocked =  not self.canPop()
          if newblocked != self.blocked:
              self.blocked = newblocked
              if self.parent is not None:
                  self.parent.notifyBlock(self, newblocked)
          return (ret1, ret2)
docs: Internal notify for sub-queues been poped
          
          :returns: List of any events generated by this pop