[Python] Utilizzo di Readline con socket
Daniele Varrazzo
piro a develer.com
Gio 31 Gen 2008 01:24:24 CET
De Santis Luca ha scritto:
> > La soluzione è usare select o poll e leggere dei dati *solo* quando
> > disponibili, impostando i socket in modalità non bloccante.
>
> Ho spulciato tutta la documentazione di pys60 e putroppo select é
> suppoerato solo per i dati in uscita, non per quelli in ingresso e per
> le eccezioni :(
Allora ingoia l'amaro calice dei thread :) Spawna un thread per leggere dal
socket in maniera bloccante. Usa una coda per comunicare i dati al thread
principale che li consumerà.
Credo che sulla s60, tanto per darti una mano, non sia disponibile il modulo
Queue, che sarebbe stato thread-safe. Quindo dovresti costruirti una classe
coda wrappando una lista ordinaria e usando un oggetto Ao_lock per
sincronizzare l'accesso.
I thread sono brutti, cattivi, cacca, hitler usava i thread... sono d'accordo
su tutto. Ma ci sono momenti in cui fanno maledettamente comodo (questo lo è,
a meno che non ti spieghino come installare twisted sul cellulare) e ci sono
modi di usarli in cui funzionano senza dare rogne (una coda lo è). Secondo me
rimuoverli dalla coscienza collettiva della programmazione è negativo quanto
il loro stesso abuso.
--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
More information about the Python
mailing list