51 lines
1.7 KiB
Scheme
51 lines
1.7 KiB
Scheme
(module none mzscheme
|
|
(require (lib "contract.ss"))
|
|
(require "manager.ss")
|
|
(require "../servlet-structs.ss")
|
|
(provide/contract
|
|
[create-none-manager (expiration-handler? . -> . manager?)])
|
|
|
|
(define-struct (none-manager manager) (instance-expiration-handler))
|
|
(define (create-none-manager
|
|
instance-expiration-handler)
|
|
(define the-data (make-thread-cell #f))
|
|
|
|
(define (create-instance data expire-fn)
|
|
(thread-cell-set! the-data data)
|
|
0)
|
|
(define (adjust-timeout! instance-id secs)
|
|
(void))
|
|
|
|
(define (instance-lookup instance-id)
|
|
(raise (make-exn:fail:servlet-manager:no-instance
|
|
(format "No instance for id: ~a" instance-id)
|
|
(current-continuation-marks)
|
|
instance-expiration-handler)))
|
|
|
|
(define (instance-lock! instance-id)
|
|
(void))
|
|
(define (instance-unlock! instance-id)
|
|
(void))
|
|
|
|
(define (instance-lookup-data instance-id)
|
|
(thread-cell-ref the-data))
|
|
|
|
(define (clear-continuations! instance-id)
|
|
(instance-lookup instance-id))
|
|
|
|
(define (continuation-store! instance-id k expiration-handler)
|
|
(instance-lookup instance-id))
|
|
(define (continuation-lookup instance-id a-k-id a-salt)
|
|
(instance-lookup instance-id))
|
|
|
|
(make-none-manager create-instance
|
|
adjust-timeout!
|
|
instance-lookup-data
|
|
instance-lock!
|
|
instance-unlock!
|
|
clear-continuations!
|
|
continuation-store!
|
|
continuation-lookup
|
|
; Specific
|
|
instance-expiration-handler)))
|