Page tree
Skip to end of metadata
Go to start of metadata

Envia uma chamada para uma thread, que não precisa ser necessariamente do mesmo ambiente, que está em espera.

Sintaxe

IPCGo( < cSemaforo > )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cSemaforo

caractere

Indica o local ou semáforo em que as threads foram iniciadas. Observação: O semáforo especificado não deve conter letras minúsculas. Todas as letras informadas no semáforo devem ser maiúsculas.

X

 

Retorno

Nome

Tipo

Descrição

bRet

L

Retorna .T. caso a requisição foi enviada a um IpcWaitEx() em espera.

Observações

  • Esta função recebe mais 15 argumentos opcionais para passagem de dados, porém esse valor não pode ser do tipo bloco de código ou lógico.
  • Ao especificar o semáforo que desejamos, no parâmetro <cSemaforo>, a função pegará a primeira thread livre que encontrar na IPCWaitEx().
  • Caso não exista nenhum semáforo em espera com o nome especificado no momento da chamda da função IpcGo(), ela retorna .F. imediatamente. 

Exemplos

Exemplo 1
#DEFINE SEMAFORO 'IDUNICOTESTE'

#DEFINE SEMAFORO 'IDUNICOTESTE'

User Function ipcgo()
  StartJob("U_ipcjobs",GetEnvServer(),.F.)
  StartJob("U_ipcjobs",GetEnvServer(),.F.)
  

  Sleep( 7000 )
  
  IPCGo( SEMAFORO, "Data atual " + cvaltochar(date()) )
  
Return

User Function ipcjobs()
  Local cPar
  while !killapp()
    lRet := IpcWaitEx( SEMAFORO, 5000, @cPar )
    if lRet
      conout(cPar)
      exit
    endif
  enddo
Return

Abrangência

Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server

Veja também

  • No labels