Содержание
sem_get
sem_acquire
sem_release
shm_attach
shm_detach
shm_put_var
shm_put_var
shm_remove_var
shm_remove

Этот модуль предоставляет функции семафоров, используя семафоры System V. Семафоры могут использоваться для обеспечения эксклюзивного доступа к русурсам используемой машины или для ограничения числа процессов, которые могут одновременно использовать ресурс.

Поддержка разделяемой памяти также включена. Она совместима с System V - совместимыми системами.

sem_get

sem_get -- получение идентификатора семафора
Описание

int sem_get (int key, int [ max_acquire ] , int [ perm ] );

Возвращает положительный индентификатор семафора при успехе или false при ошибке.

sem_get() возвращает идентификатор, который может быть использован для доступа к семафору System V с указанным ключом. Семафор создается, если необходимо, используя биты доступа, указанные в perm (по умолчанию 0666). Число процессов, которое может быть зафиксировано семафором одновременно устанавливается в max_acquire (по-умолчанию 1). В действительности это значение устанавливается только если процесс обнаруживает, что он является единственным, присоединенным к семафору.

Повторный вызов функции sem_get() с тем же ключем вернет другой идентификатор семафора, но оба идентификатора указывают на один и тот же семафор.

См. также: sem_acquire() and sem_release() .

sem_acquire

sem_acquire -- фиксирует семафор
Описание

int sem_acquire (int sem_identifier);

Возвращает true при успехе, false при ошибке.

sem_acquire() блокируется (если необходимо) до тех пор, пока семафор сможет быть зафиксирован. Процесс, пытающийся зафиксировать семафор, который уже зафиксирован, буде блокирован навсегда, если фиксация семафора вызовет превышение его max_acquire значения..

После обработки запроса, любые семафоры, зафиксированные процессом, но не освобожденные вручную, будут освобождены автоматически с выдачей предупреждения.

См. также: sem_get() and sem_release() .

sem_release

sem_release -- освобождает семафор
Описание

int sem_release (int sem_identifier);

Возвращает true при успехе и false при ошибке.

sem_release() освобождает семафор если он зафиксирован в данное время вызывающим процессом, иначе выдается предупреждение.

После освобождения семафора функция sem_acquire() может быть вызвана для ре-фиксации его.

См. также: sem_get() and sem_acquire() .

shm_attach

shm_attach -- Создает или открывает разделяемую память
Описание

int shm_attach (long key, long memsize, long perm);

Создает или открывает разделяемую память с указанным ключем и размером памяти.

shm_detach

shm_detach -- Отсоединяет от разделяемой памяти
Описание

int shm_detach (long id);

Отсоединяет от разделяемой памяти с указанным id , созданным с помощью функции shm_attach() . Помните, что разделяемая память все еще существует в Unix-системе и данные все еще присутствуют.

shm_put_var

shm_put_var -- Вставляет или обновляет переменную в разделяемой памяти
Описание

int shm_put_var (int id, long variable_key, mixed variable);

Вставляет или обновляет переменную с указанным variable_key. Все типы переменных (double, long, string, array) поддерживаются. Функция serialize() может быть использована для хранения данных.

shm_put_var

shm_put_var -- Считывает переменную с указанным variable_key
Описание

mixed shm_get_var (int id, long variable_key);

Считывает переменную с указанным variable_key . Переменная все еще присутствует в разделяемой памяти. Функция unserialize() может быть использована для декодирования данных.

shm_remove_var

shm_remove_var -- Удаляет переменную из разделяемой памяти
Описание

int shm_remove_var (int id, long variable_key);

Удаляет переменную с указанным variable_key из разделяемой памяти.

shm_remove

shm_remove -- Удаляет разделяемую память
Описание

int shm_remove (long key);

Удаляет разделяемую память из Unix-системы. Все данные будут уничтожены.

Назад | Содержание | Вперед