---
title: IOCommandPool
framework: driverkit
role: symbol
role_heading: Class
path: driverkit/iocommandpool
---

# IOCommandPool

## Declaration

```occ
class IOCommandPool;
```

## Overview

Overview Manipulates a pool of commands which inherit from IOCommand. The IOCommandPool class is used to manipulate a pool of commands which inherit from IOCommand. The caller must put commands in the pool by creating the command (via the controller’s factory method or a memory allocation) and calling the returnCommand method with the newly created command as its argument.

## Topics

### Instance Methods

- [free](driverkit/iocommandpool/free.md)
- [gatedGetCommand](driverkit/iocommandpool/gatedgetcommand.md)
- [gatedReturnCommand](driverkit/iocommandpool/gatedreturncommand.md)
- [getCommand](driverkit/iocommandpool/getcommand.md)
- [init](driverkit/iocommandpool/init.md)
- [initWithQueue](driverkit/iocommandpool/initwithqueue.md)
- [returnCommand](driverkit/iocommandpool/returncommand.md)

### Type Methods

- [withQueue](driverkit/iocommandpool/withqueue.md)

## Relationships

### Inherits From

- [OSObject](driverkit/osobject.md)

## See Also

### Data Types

- [IOCallOnceBlock](driverkit/iocallonceblock.md)
- [IOCallOnceFlag](driverkit/iocallonceflag.md)
- [IOCommand](driverkit/iocommand.md)
- [IOCommandPoolPtr](driverkit/iocommandpoolptr.md)
- [IOCommandPtr](driverkit/iocommandptr.md)
- [IODMACommand](driverkit/iodmacommand.md)
- [IODMACommandSpecification](driverkit/iodmacommandspecification.md)
- [IODispatchAction](driverkit/iodispatchaction.md)
- [IOHistogramReporter_IVars](driverkit/iohistogramreporter_ivars.md)
- [IOReportLegendEntry](driverkit/ioreportlegendentry.md)
- [IOReporter_IVars](driverkit/ioreporter_ivars.md)
- [IOSimpleReporter_IVars](driverkit/iosimplereporter_ivars.md)
- [IOStateReporter_IVars](driverkit/iostatereporter_ivars.md)
- [IOStateReporter_valueSelector](driverkit/iostatereporter_valueselector.md)
- [IVarsInvalidator](driverkit/ivarsinvalidator.md)
