View Full Version : [C++] timer senza thread ?
trallallero
25-01-2008, 13:22
domanda scema ma io ci provo ...
ho bisogno di mandare un messaggio 5 secondi dopo un evento e NON voglio
avere un thread perchè mi spaccherebbe tutta la logica (seriale, non multi-threading)
questo 3d potrebbe risiedere in un'interfaccia che sta facendo un mio collega ma
se si potesse mettere questo ritardo nella mia logica sarebbe meglio.
C'è qualche modo ? anche non pulitissimo :stordita:
Polling ?
Come funziona il tuo programma ? C'è un ciclo infinito che controlla che si siano verificati degli eventi...se non sbaglio...
trallallero
25-01-2008, 14:18
si ma il problema è che il ciclo aspetta all'infinito (non per scelta mia) perchè chiamo
una funzione che mi estrae un messaggio da una queue e blocca fino a che non ne trova uno.
Quindi non posso fare niente nel frattempo ... l'unica sarebbe un 3d ma non ci penso nemmeno
edit: io non lo avrei mai fatto blocking, lo detesto!
Non farlo bloccante...usa la select, credo che si possa utilizzare anche per le code ed usa il polling sia sulla select sia per controllare che il tempo del timer sia scaduto ;)
trallallero
25-01-2008, 14:32
Non farlo bloccante...usa la select, credo che si possa utilizzare anche per le code ed usa il polling sia sulla select sia per controllare che il tempo del timer sia scaduto ;)
t'ho scritto che non è per mia scelta. Io chiamo una funzione non fatta da me
m_CommInterface.mp_NetInterface->recvMsg(msg);
m_CommInterface è mio
mp_NetInterface no e, ovviamente, neanche la recvMsg (che blocca)
quindi immagino non sia possibile ... avevo ragione, domanda scema :D
posso provare a convincere il mio collega a sbloccarla ...
Credo che sia la scelta migliore...altrimenti non puoi gestire il timeout.
trallallero
25-01-2008, 14:40
Credo che sia la scelta migliore...altrimenti ti tocca stare continuamente in attesa.
si infatti è per quello che odio il blocking ... e riflette il mio carattere, non riesco a stare senza fare niente :asd:
comunque se non accetta di sbloccarla il 3d se lo deve fare lui quindi mi frega poco.
Grazie (ma ci sei rimasto solo tu quì ?)
Non credo :)
Gli altri sono tutti occupati a studiare il Python :ciapet:
trallallero
25-01-2008, 14:47
Non credo :)
Gli altri sono tutti occupati a studiare il Python :ciapet:
Python ? :eek:
cos'è la nuova moda ?
trallallero
25-01-2008, 15:09
ok, l'ho convinto :D
per il poll dovrei cavarmela da solo ma se hai dei suggerimenti sto quì, grazie :)
AnonimoVeneziano
25-01-2008, 15:15
Python ? :eek:
cos'è la nuova moda ?
E' trendy , è cool, è lounge , è tognazzi ... :asd:
per il poll dovrei cavarmela da solo ma se hai dei suggerimenti sto quì, grazie :)
Ti ricordi il Command pattern ? Fatti una vettore di comandi da mettere dentro ad una classe insieme al tempo (in secondi) in cui deve essere eseguito il calmando.
Se il tempo è scaduto allora lo esegui e lo togli dal vettore.
trallallero
25-01-2008, 15:21
Ti ricordi il Command pattern ? Fatti una vettore di comandi da mettere dentro ad una classe insieme al tempo (in secondi) in cui deve essere eseguito il calmando.
Se il tempo è scaduto allora lo esegui e lo togli dal vettore.
uhm, sounds good :)
ok, ti faccio sapere, grazie
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.