CAPÍTULO 4
Programação visual com Software Livre
EDIT LIN EDITORIAL S.L,  dos autores  Daniel Campos Fernández e José Luis Redrejo.  Prólogo de Benoit Minisini

Palavra chave WAIT


Se adicionarmos o flag WAIT à instrução EXEC, o programa principal se deterá até que o processo tenha finalizado de forma normal ou devido a alguma falha.

Vamos de novo ao primeiro exemplo com pequenas modificações. Vamos fazer uma lista da pasta /dev, que contem grande quantidade de arquivos. Se os dois processos executam-se de forma assíncrona, obteremos resultados imprevisíveis.

PUBLIC SUB
Main()

EXEC [ "ls" "/dev" "-l" ]

PRINT "OLÁ GAMBAS"

END

Em seguida, o compilamos e executamos várias vezes a partir de um terminal. Observamos como na lista mais abaixo a frase OLÁ GAMBAS se introduz de forma caprichosa entre a lista gerado pelo comando ls.
Figura 41

PUBLIC SUB
Main()

EXEC [ "ls""/dev" "-l" ] WAIT

PRINT "OLÁ GAMBAS"

END

Podemos executar quantas vezes quisermos: já não existe o problema inicial, o programa Gambas espera que termine de executar ls, e depois passa a seguinte linha de código. Conseguimos sincronizar a execução de dois processos de forma simples, simplificando nosso código, já que de outro modo teríamos, por exemplo, que colocar a lista em um arquivo, esperar em um loop até que o arquivo deixasse de crescer e, em seguida, lê-lo e mostra-lo na tela.
Cópia literal

Extraído do livro “GAMBAS, programação visual com software Livre”, da editora EDIT LIN EDITORIAL S.L,  dos autores  Daniel Campos Fernández e José Luis Redrejo. Prólogo de Benoit Minisini

LICENSA DESTE DOCUMENTO


É permitido a cópia e distribuição da totalidade ou parte desta obra sem fins lucrativo. Toda cópia total ou parcial devera expressar o nome do autor e da editora e incluir esta mesma licença, adicionando se é uma cópia literal “Cópia literal”. Se é autorizada a modificação e tradução da obra  sem fins lucrativo sempre se deve constar na obra resultante  a modificação o nome da obra original o autor da obra original e o nome da editora e a obra resultante também deverá ser livremente reproduzida, distribuída, ao publico e transformada em termos similares ao exposto nesta licença.

Tradução

Cientista
 (Antonio Sousa)