Semáforos

Semáforos são sinalizadores de sinais globais no sistema que configuram recursos mutuamente exclusivos (mutex). Utilize-os para fazer alguns processos aguardarem a conclusão de outros processos.

Utilize Tarefas > Semáforos para visualizar semáforos de tarefa que estão em uso. Também é possível limpar semáforos, o que pode ser necessário quando uma tarefa cancelada ou interrompida não libera seu semáforo.

O painel Semáforos é usado no painel Tarefas.
Semáforos são implementados por meio de um par de comandos com ponto: os comandos .semget e .semput. Utilize o comando .semget para "capturar" um rótulo: depois que uma etapa obtiver um rótulo, qualquer outra etapa (em qualquer projeto) que tentar obter o mesmo rótulo deverá aguardar até que o solicitante original o libere.
Nota: Uma etapa que contém um comando .semget aguarda até a liberação do semáforo. Se uma tarefa falhar e deixe seu semáforo ativado, o semáforo deve ser limpo manualmente antes que qualquer tarefa que utilize o semáforo possa executar novamente.

Por exemplo, suponha que você tenha um programa que crie um driver de impressora e deseje que o programa seja utilizado por apenas um processo a qualquer momento. Dentro de cada projeto que chame o programa, configure três etapas com as seguintes linhas de comandos:

Etapa

Linha de Comando

Obter semáforo

.semget $BF_PROJECTNAME_PHYS

Executar criador do driver

printdrivermaker.exe windows

Liberar semáforo

.semput $BF_PROJECTNAME_PHYS

Você pode estabelecer semáforos para recursos chave em sua organização, como um servidor excessivamente carregado ou um programa de software com uma licença para usuário único. Cada etapa que utilizar o recurso que você deseja proteger deverá ser agrupada com os comandos .semget e .semput.

Semáforos obedecem às seguintes regras:


Feedback