(PHP 4, PHP 5, PHP 7, PHP 8)
sem_get — Obtém um ID de semáforo
$key
,$max_acquire
= 1,$permissions
= 0666,$auto_release
= true
sem_get() retorna um id que pode ser usado para
acessar o semáforo do System V com a chave fornecida em key
.
Uma segunda chamada a sem_get() com a mesma chave retornará um identificador de semáforo diferente, mas ambos os identificadores acessam o mesmo semáforo subjacente.
Se key
for 0
, um novo semáforo privado
será criado para cada chamada a sem_get().
key
max_acquire
O número de processos que podem adquirir o semáforo simultaneamente
é definido como max_acquire
.
permissions
As permissões do semáforo. Na verdade, este valor é definido somente se o processo descobrir que é o único processo atualmente anexado ao semáforo.
auto_release
Especifica se o semáforo deve ser liberado automaticamente mediante desligamento da solicitação.
Retorna um identificador de semáforo positivo em caso de sucesso, ou false
em caso de
erro.
Versão | Descrição |
---|---|
8.0.0 | Em caso de sucesso, esta função agora retorna uma instância de SysvSemaphore; anteriormente, um resource era retornado. |
8.0.0 |
O tipo de auto_release foi alterado de
int para bool.
|
Ao usar sem_get() para acessar um semáforo criado
fora do PHP, observe que o semáforo deve ter sido criado como um conjunto de 3
semáforos (por exemplo, especificando 3 como o parâmetro nsems
ao chamar a função semget()
do C),
caso contrário, o PHP não conseguirá acessar o semáforo.