+ (lambda (run-request)
+ (define (schedule-at! time proc)
+ (schedule-add! (agenda-schedule agenda) time proc))
+ (let ((request-time (run-request-when run-request)))
+ (match request-time
+ ((? time-delta? time-delta)
+ (let ((time (time-+ (agenda-time agenda)
+ time-delta)))
+ (schedule-at! time (run-request-proc proc))))
+ ((? integer? sec)
+ (let ((time (cons sec 0)))
+ (schedule-at! time (run-request-proc proc))))
+ (((? integer? sec) . (? integer? usec))
+ (schedule-at! request-time (run-request-proc proc)))
+ (#f
+ (enq! next-queue (run-request-proc run-request))))))))