Этот модуль предоставляет функции семафоров, используя семафоры 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-системы. Все данные будут уничтожены.
8 8 8
|