custodian-box usage

svn: r6117
This commit is contained in:
Jay McCarthy 2007-05-02 04:57:26 +00:00
parent 60cb899ba1
commit 1b2ef2e1f4
3 changed files with 8 additions and 5 deletions

View File

@ -257,8 +257,8 @@
(thread-cell-set! current-execution-context
(make-execution-context
conn req suspend))
(let ([k ((manager-continuation-lookup manager) instance-id k-id salt)])
(k req)))])
(let ([kcb ((manager-continuation-lookup manager) instance-id k-id salt)])
((custodian-box-value kcb) req)))])
(output-response conn response))
(semaphore-post (servlet-instance-data-mutex data)))))
((manager-instance-unlock! manager) instance-id)

View File

@ -21,8 +21,8 @@
[instance-lock! (number? . -> . void)]
[instance-unlock! (number? . -> . void)]
[clear-continuations! (number? . -> . void)]
[continuation-store! (number? procedure? expiration-handler? . -> . (list/c number? number?))]
[continuation-lookup (number? number? number? . -> . procedure?)])]
[continuation-store! (number? any/c expiration-handler? . -> . (list/c number? number?))]
[continuation-lookup (number? number? number? . -> . any/c)])]
[struct (exn:fail:servlet-manager:no-instance exn:fail)
([msg string?]
[continuation-marks continuation-mark-set?]

View File

@ -92,7 +92,10 @@
(let/cc k
(define instance-id (get-current-servlet-instance-id))
(define ctxt (thread-cell-ref current-execution-context))
(define k-embedding ((manager-continuation-store! (current-servlet-manager)) instance-id k expiration-handler))
(define k-embedding ((manager-continuation-store! (current-servlet-manager))
instance-id
(make-custodian-box (current-custodian) k)
expiration-handler))
(define k-url ((current-url-transform)
(embed-ids
(list* instance-id k-embedding)