Module Store.Worker

module Worker: sig .. end
Persisting state for workers.

include Store.S
val forget : Store.t -> Worker.id -> unit Lwt.t
forget t removes all metadata about the worker.
val tick : Store.t -> Worker.id -> float -> unit Lwt.t
tick t w f updates the worker w's status with the timestamp f. f is supposed to tbe the local worker time, i.e. the current time since 00:00:00 GMT, Jan. 1, 1970, in seconds in the worker referential.
val status : Store.t -> Worker.id -> Worker.status option Lwt.t
job t w is the worker w's current job. None means that the worker is not alive anymore.
val start_job : Store.t -> Worker.id -> Job.id -> unit Lwt.t
start_job t w j asks the worker w to start working on the build job j.
val start_task : Store.t -> Worker.id -> Task.id -> unit Lwt.t
start_task t w ta asks the worker w to start working on the task ta.
val idle : Store.t -> Worker.id -> unit Lwt.t
idle t w registers that w is idle.
type diff = [ `Added of Worker.t | `Removed of Worker.id ] 
The type for worker diffs.
val watch : Store.t -> diff Store.callback -> Store.cancel Lwt.t
watch t f calls f everytime a new worker is added.
val watch_status : Store.t ->
Worker.id -> Worker.status option Store.callback -> Store.cancel Lwt.t
watch_status t w f calls f everytime w's status is updated. None means that the worker is not alive anymore.
val watch_ticks : Store.t -> Worker.id -> float Store.callback -> Store.cancel Lwt.t
watch_ticks t w f calls f everytime the worker w calls Store.Worker.tick. Return a cancel function.