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 _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python