'Remove all readers and writers, and list of removed L{IReadDescriptor}s
and L{IWriteDescriptor}s.
Meant for calling from subclasses, to implement removeAll, like::
def removeAll(self):
return self._removeAll(self._reads, self._writes)
where C{self._reads} and C{self._writes} are iterables.'

def _removeAll(self, readers, writers):

    removedReaders = (set(readers) - self._internalReaders)
    for reader in removedReaders:
        self.removeReader(reader)
    removedWriters = set(writers)
    for writer in removedWriters:
        self.removeWriter(writer)
    return list((removedReaders | removedWriters))
