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.