6.11.1 Oggetti dello scheduler

Le istanze di scheduler hanno i seguenti metodi:

enterabs( time, priority, action, argument)
Aggiunge allo scheduler un nuovo evento. L'argomento time dovrebbe essere un tipo numerico compatibile con il valore restituito dalla funzione timefunc, passata al costruttore. Gli eventi schedulati per lo stesso valore di time verranno eseguiti secondo l'ordine di priority (NdT: priorit�).

Eseguire l'evento significa eseguire action(*argument). argument deve essere una sequenza contenente i paramteri per l'azione action.

Il valore restituito � un puntatore all'evento schedulato, che pu� venire usato in futuro per una sua cancellazione (vedete cancel()).

enter( delay, priority, action, argument)
Schedula un evento per una quantit� pari ad un valore di delay unit� di tempo. Tranne il tempo relativo, gli altri argomenti, l'effetto ed il valore restituito sono uguali a quelli di enterabs().

cancel( event)
Rimuove event dalla coda degli eventi. Se l'evento non � presente nella coda, questo metodo sollever� un'eccezione RuntimeError.

empty( )
Restituisce vero se la coda degli eventi � vuota.

run( )
Esegue tutti gli eventi dello schedulatore. Questa funzione (attraverso l'uso della funzione delayfunc passata al costruttore) rester� in attesa dell'evento successivo, quindi lo eseguir�, e cos� via finch� non esisteranno pi� eventi schedulati.

Sia action che delayfunc possono sollevare un'eccezione. In entrambi i casi, lo schedulatore manterr� uno stato consistente e propagher� l'eccezione. Se un'eccezione viene sollevata da action, non si tenter� di eseguire l'evento alla successiva chiamata di run().

Se una sequenza di eventi richiede un tempo per l'esecuzione superiore a quello messo a disposizione prima dell'evento successivo, lo schedulatore rimarr� semplicemente attardato. Nessun evento verr� scartato; il codice chiamante � responsabile della cancellazione degli eventi non pi� pertinenti.

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.