Semaphore, Shared Memory and IPC
Introduction
These modules provide wrappers for the System V IPC family of functions. It includes semaphores, shared memory and inter-process messaging (IPC).
Semaphores may be used to provide exclusive access to resources on the current machine, or to limit the number of processes that may simultaneously use a resource.
This module provides also shared memory functions using System V shared memory. Shared memory may be used to provide access to global variables. Different httpd-daemons and even other programs (such as Perl, C, ...) are able to access this data to provide a global data-exchange. Remember, that shared memory is NOT safe against simultaneous access. Use semaphores for synchronization.
| SHMMAX | max size of shared memory, normally 131072 bytes |
| SHMMIN | minimum size of shared memory, normally 1 byte |
| SHMMNI | max amount of shared memory segments on a system, normally 100 |
| SHMSEG | max amount of shared memory segments per process, normally 6 |
The messaging functions may be used to send and receive messages to/from other processes. They provide a simple and effective means of exchanging data between processes, without the need for setting up an alternative using Unix domain sockets.
Note: Only the shared memory functions and ftok() are available on Windows. Neither semaphores nor inter-process messaging functions are supported on that platform.
- Installing/Configuring
- Predefined Constants
- Semaphore Functions
- ftok — Convert a pathname and a project identifier to a System V IPC key
- msg_get_queue — Create or attach to a message queue
- msg_queue_exists — Check whether a message queue exists
- msg_receive — Receive a message from a message queue
- msg_remove_queue — Destroy a message queue
- msg_send — Send a message to a message queue
- msg_set_queue — Set information in the message queue data structure
- msg_stat_queue — Returns information from the message queue data structure
- sem_acquire — Acquire a semaphore
- sem_get — Get a semaphore id
- sem_release — Release a semaphore
- sem_remove — Remove a semaphore
- shm_attach — Creates or open a shared memory segment
- shm_detach — Disconnects from shared memory segment
- shm_get_var — Returns a variable from shared memory
- shm_has_var — Check whether a specific entry exists
- shm_put_var — Inserts or updates a variable in shared memory
- shm_remove — Removes shared memory from Unix systems
- shm_remove_var — Removes a variable from shared memory
- SysvMessageQueue — The SysvMessageQueue class
- SysvSemaphore — The SysvSemaphore class
- SysvSharedMemory — The SysvSharedMemory class