---
title: IOOutputQueue
framework: kernel
role: symbol
role_heading: Class
path: kernel/iooutputqueue
---

# IOOutputQueue

A packet queue that supports multiple producers and a single consumer.

## Declaration

```occ
class IOOutputQueue : OSObject
```

## Overview

Overview Each producer, or a client thread, will deliver a chain of packets to the queue. A single consumer will remove packets from the queue one at a time and forward it to the registered target/action. This object may be used by an IONetworkController on the output (transmit) side to handle the output packet flow downstream from an IONetworkInterface, and then call the driver's output function. IOOutputQueue is an abstract class that provides an interface for its subclasses. Concrete subclasses will complete the implementation, and specify the context that the target is called for packets removed from the queue.

## Topics

### Miscellaneous

- [cancelServiceThread](kernel/iooutputqueue/1810578-cancelservicethread.md)
- [enqueue](kernel/iooutputqueue/1810610-enqueue.md)
- [flush](kernel/iooutputqueue/1810640-flush.md)
- [free](kernel/iooutputqueue/1810666-free.md)
- [getCapacity](kernel/iooutputqueue/1810689-getcapacity.md)
- [getMbufPriority](kernel/iooutputqueue/1810719-getmbufpriority.md)
- [getOutputHandler](kernel/iooutputqueue/1810744-getoutputhandler.md)
- [getSize](kernel/iooutputqueue/1810788-getsize.md)
- [getStatisticsData](kernel/iooutputqueue/1810822-getstatisticsdata.md)
- [init](kernel/iooutputqueue/1810854-init.md)
- [scheduleServiceThread](kernel/iooutputqueue/1810887-scheduleservicethread.md)
- [service](kernel/iooutputqueue/1810919-service.md)
- [serviceThread](kernel/iooutputqueue/1810947-servicethread.md)
- [setCapacity](kernel/iooutputqueue/1810969-setcapacity.md)
- [start](kernel/iooutputqueue/1810993-start.md)
- [stop](kernel/iooutputqueue/1811022-stop.md)

### Instance Variables

- [_reserved](kernel/iooutputqueue/reserved.md)

### Instance Methods

- [cancelServiceThread](kernel/iooutputqueue/1470208-cancelservicethread.md)
- [enqueue](kernel/iooutputqueue/1470236-enqueue.md)
- [flush](kernel/iooutputqueue/1470215-flush.md)
- [free](kernel/iooutputqueue/1470280-free.md)
- [getCapacity](kernel/iooutputqueue/1470212-getcapacity.md)
- [getMbufPriority](kernel/iooutputqueue/1470277-getmbufpriority.md)
- [getMetaClass](kernel/iooutputqueue/1470221-getmetaclass.md)
- [getOutputHandler](kernel/iooutputqueue/1470270-getoutputhandler.md)
- [getSize](kernel/iooutputqueue/1470261-getsize.md)
- [getStatisticsData](kernel/iooutputqueue/1470205-getstatisticsdata.md)
- [init](kernel/iooutputqueue/1470264-init.md)
- [scheduleServiceThread](kernel/iooutputqueue/1470273-scheduleservicethread.md)
- [service](kernel/iooutputqueue/1470199-service.md)
- [serviceThread](kernel/iooutputqueue/1470251-servicethread.md)
- [setCapacity](kernel/iooutputqueue/1470267-setcapacity.md)
- [start](kernel/iooutputqueue/1470231-start.md)
- [stop](kernel/iooutputqueue/1470225-stop.md)

### Type Methods

- [runServiceThread](kernel/iooutputqueue/1470245-runservicethread.md)

## Relationships

### Inherits From

- [OSObject](kernel/osobject.md)

## See Also

### Output Queues

- [IOGatedOutputQueue](kernel/iogatedoutputqueue.md)
- [IOBasicOutputQueue](kernel/iobasicoutputqueue.md)
