il FIFO in gb.data funziona....finché non si cerca di svuotarlo da uh task separato....allora succedono cose strane....forse c'è sotto un BUG.
All'inizio la coda q è riempita con 4 elementi e, all'attivare il task, viene giustamente scaricata....ma successivamente, battendo dei caratteri nella TextArea questi vengono aggiunti alla coda come se questa non fosse mai stata scaricata:
Entra nel task
Task Dequeue Primo
Task Size 3
Task Dequeue 123
Task Size 2
Task Dequeue True
Task Size 1
Task Dequeue a
Task Size 0 <------------- nota che ora il FIFO è scarico... apparentemente
FMain.Form_Open.28: Manico 109662 ....prima parte tutto regolare
....................................
...seconda parte.....batto dei caratteri nella TextArea:
FMain.TextIN_Change.49: Manico 109791
Size aggiunto 5
FMain.TextIN_Change.49: Manico 109791
Size aggiunto 6
FMain.TextIN_Change.49: Manico 109791
Size aggiunto 7
FMain.TextIN_Change.49: Manico 109791
Size aggiunto 8
FMain.TextIN_Change.49: Manico 109791
Size aggiunto 9
La numerazione riprende come se la FIFO non fosse stata scaricata nella parte precedente; il processo di svuotamento è sempre attivo e con lo stesso nº di handle ma no fa niente.
Se poi clicco sul bottone Scarica mi butta fuori tutto ....anche i dati introdotti all'inizio
Ora, se riclicco su Scarica non stampa niente....questa volta ha davvero scricato il FIFO.
Sará una delle tante stranezze di Gambas ?
In allegato il programma di test: Test-FIFO-Task