---
title: removeEventSource
framework: kernel
role: pseudoSymbol
path: kernel/ioworkloop/1809449-removeeventsource
---

# removeEventSource

## Declaration

```occ
virtual IOReturn removeEventSource(
 IOEventSource *toRemove); 
```

## Parameters

- `toRemove`: Pointer to IOEventSource subclass to remove.

## Return Value

Return Value Returns kIOReturnSuccess if successful, kIOReturnBadArgument if toRemove couldn't be found.

## Overview

Overview Remove an event source from the work loop. This function does not return until the work loop has acknowledged the removal of the event source. When an event has been removed the threadMain will always restart its loop and check all outstanding events. The event source will be released before return.

## See Also

### Miscellaneous

- [_maintRequest](kernel/ioworkloop/1809377-_maintrequest.md)
- [addEventSource](kernel/ioworkloop/1809383-addeventsource.md)
- [disableAllEventSources](kernel/ioworkloop/1809388-disablealleventsources.md)
- [disableAllInterrupts](kernel/ioworkloop/1809396-disableallinterrupts.md)
- [enableAllEventSources](kernel/ioworkloop/1809401-enablealleventsources.md)
- [enableAllInterrupts](kernel/ioworkloop/1809404-enableallinterrupts.md)
- [eventSourcePerformsWork](kernel/ioworkloop/1809410-eventsourceperformswork.md)
- [free](kernel/ioworkloop/1809418-free.md)
- [getThread](kernel/ioworkloop/1809425-getthread.md)
- [inGate](kernel/ioworkloop/1809434-ingate.md)
- [init](kernel/ioworkloop/1809441-init.md)
- [onThread](kernel/ioworkloop/1809446-onthread.md)
- [runAction](kernel/ioworkloop/1809454-runaction.md)
- [runEventSources](kernel/ioworkloop/1809459-runeventsources.md)
- [threadMain](kernel/ioworkloop/1809465-threadmain.md)
- [threadMainContinuation](kernel/ioworkloop/1809470-threadmaincontinuation.md)
- [workLoop](kernel/ioworkloop/1809476-workloop.md)
- [workLoopWithOptions](kernel/ioworkloop/1809483-workloopwithoptions.md)
- [workLoopWithOptions(IOOptionBits options)](kernel/ioworkloop/1809488-workloopwithoptions.md)
