def METHOD_NAME(self, events, timeout=10):
    start = os.times()[4]
    while True:
        while self.mon.pending():
            ev = self.mon.recv()
            logger.debug(self.ifname + ": " + ev)
            for event in events:
                if event in ev:
                    return ev
        now = os.times()[4]
        remaining = start + timeout - now
        if remaining <= 0:
            break
        if not self.mon.pending(timeout=remaining):
            break
    return None