def remove_callback(self, fd, handle):
        """Remove a callback added by :meth:`~Poller.add_callback`.

        If this is the last callback that is registered for the fd then this
        will deallocate the ``MultiPoll`` instance and close the libuv handle.
        """
        if self._mpoll is None:
            raise RuntimeError('Poller instance is closed')
        mpoll = self._mpoll.get(fd)
        if mpoll is None:
            raise ValueError('not watching fd {}'.format(fd))
        mpoll.remove_callback(handle)