diff --git a/collects/web-server/servlet.ss b/collects/web-server/servlet.ss index 21b4c9c130..b84fd21033 100644 --- a/collects/web-server/servlet.ss +++ b/collects/web-server/servlet.ss @@ -49,6 +49,11 @@ ;; send a response and clear the continuation table (define (send/finish resp) (clear-continuations! (thread-cell-ref current-servlet-instance)) + ; If we readjust the timeout to something small, the session will expire shortly + ; we cannot wait for send/back to return, because it doesn't + ; Also, we cannot get the initial-connection-timeout variable from here + ; In the future, we should use the servlet's specific default-timeout + (adjust-timeout! 10) (send/back resp)) ;; send/suspend: (url -> response) [(request -> response)] -> request diff --git a/collects/web-server/timer.ss b/collects/web-server/timer.ss index 6d2c8d0b29..d2a16b3554 100644 --- a/collects/web-server/timer.ss +++ b/collects/web-server/timer.ss @@ -79,7 +79,7 @@ ; add secs to the timer, rather than replace (define (increment-timer timer secs) (revise-timer! timer - (+ (timer-expire-seconds timer) + (+ (- (timer-expire-seconds timer) (current-inexact-milliseconds)) (* 1000 secs)) (timer-action timer))))