racket/collects/web-server/scribblings/timer.scrbl

49 lines
1.3 KiB
Racket

#lang scribble/doc
@(require "web-server.rkt")
@title[#:tag "timer"]{Timers}
@(require (for-label web-server/private/timer))
@defmodule[web-server/private/timer]{
This module provides a functionality for running
procedures after a given amount of time, that may be extended.
@defstruct[timer ([evt evt?]
[expire-seconds number?]
[action (-> void)])]{
@racket[evt] is an @racket[alarm-evt] that is ready at @racket[expire-seconds].
@racket[action] should be called when this @racket[evt] is ready.
}
@defproc[(start-timer-manager)
void]{
Handles the execution and management of timers.
}
@defproc[(start-timer [s number?]
[action (-> void)])
timer?]{
Registers a timer that runs @racket[action] after @racket[s] seconds.
}
@defproc[(reset-timer! [t timer?]
[s number?])
void]{
Changes @racket[t] so that it will fire after @racket[s] seconds.
}
@defproc[(increment-timer! [t timer?]
[s number?])
void]{
Changes @racket[t] so that it will fire after @racket[s] seconds from when
it does now.
}
@defproc[(cancel-timer! [t timer?])
void]{
Cancels the firing of @racket[t] ever and frees resources used by @racket[t].
}
}