def METHOD_NAME(self, fd, event):
    if event & IOLoop.ERROR:
        return
    try:
        bufsize = 1024
        data = os.read(self.fd, bufsize)
        i = 0
        while i < len(data):
            (w,) = struct.unpack_from("@i", data, i)
            i += struct.calcsize("@i")
            (mask, cookie, l) = struct.unpack_from("=III", data, i)
            i += 3*4
            (name,) = struct.unpack_from("%ds" % l, data, i)
            name = name.rstrip(b"\x00").decode('utf-8')
            i += l
            self.handlers[w](os.path.join(self.paths[w], name), mask)
    except OSError as e:
        if e.errno in (errno.EWOULDBLOCK, errno.EAGAIN):
            return
        else:
            raise