---
title: threadMain
framework: kernel
role: pseudoSymbol
path: kernel/ioworkloop/1809465-threadmain
---

# threadMain

## Declaration

```occ
virtual void threadMain(); 
```

## Overview

Overview Work loop threads main function. This function consists of 3 loops: the outermost loop is the semaphore clear and wait loop, the middle loop terminates when there is no more work, and the inside loop walks the event list calling the checkForWork method in each event source. If an event source has more work to do, it can set the more flag and the middle loop will repeat. When no more work is outstanding the outermost will sleep until an event is signalled.

## 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)
- [removeEventSource](kernel/ioworkloop/1809449-removeeventsource.md)
- [runAction](kernel/ioworkloop/1809454-runaction.md)
- [runEventSources](kernel/ioworkloop/1809459-runeventsources.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)
