# The SyncSemaphore class

(PECL sync >= 1.0.0)

## Introduction

A cross-platform, native implementation of named and unnamed semaphore objects.

A semaphore restricts access to a limited resource to a limited number of instances. Semaphores differ from mutexes in that they can allow more than one instance to access a resource at one time while a mutex only allows one instance at a time.

## Class synopsis

SyncSemaphore {
/* Methods */
public __construct ([ string `$name` [, int `$initialval` = 1 [, bool `$autounlock` = `TRUE` ]]] )
public lock ([ int `$wait` = -1 ] ) : bool
public unlock ([ int `&$prevcount` ] ) : bool
}

## Table of Contents

- SyncSemaphore::__construct — Constructs a new SyncSemaphore object
- SyncSemaphore::lock — Decreases the count of the semaphore or waits
- SyncSemaphore::unlock — Increases the count of the semaphore