# The Pool class

(PECL pthreads >= 2.0.0)

## Introduction

A Pool is a container for, and controller of, an adjustable number of Workers.

Pooling provides a higher level abstraction of the Worker functionality, including the management of references in the way required by pthreads.

## Class synopsis

Pool {
/* Properties */
protected $size ;
protected $class ;
protected $workers ;
protected $ctor ;
protected $last ;
/* Methods */
public collect ([ Callable `$collector` ] ) : int
public __construct ( int `$size` [, string `$class` [, array `$ctor` ]] ) : Pool
public resize ( int `$size` ) : void
public shutdown ( void ) : void
public submit ( Threaded `$task` ) : int
public submitTo ( int `$worker` , Threaded `$task` ) : int
}

## Properties

size

  maximum number of Workers this Pool can use

class

  the class of the Worker

workers

  references to Workers

ctor

  the arguments for constructor of new Workers

last

  offset in workers of the last Worker used

## Table of Contents

- Pool::collect — Collect references to completed tasks
- Pool::__construct — Creates a new Pool of Workers
- Pool::resize — Resize the Pool
- Pool::shutdown — Shutdown all workers
- Pool::submit — Submits an object for execution
- Pool::submitTo — Submits a task to a specific worker for execution