sem_get

(PHP 4, PHP 5, PHP 7, PHP 8)

sem_getObtém um ID de semáforo

Descrição

sem_get(
    int $key,
    int $max_acquire = 1,
    int $permissions = 0666,
    bool $auto_release = true
): SysvSemaphore|false

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().

Parâmetros

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.

Valor Retornado

Retorna um identificador de semáforo positivo em caso de sucesso, ou false em caso de erro.

Registro de Alterações

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.

Notas

Aviso

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.

Veja Também

  • sem_acquire() - Adquire um semáforo
  • sem_release() - Libera um semáforo
  • ftok() - Converte um nome de caminho e um identificador de projeto em uma chave IPC do System V