diff options
author | bptato <nincsnevem662@gmail.com> | 2024-12-19 23:25:44 +0100 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2024-12-19 23:25:44 +0100 |
commit | 9ba9cb41aac6da09c8018a6e4cf4dd7e81f6eb96 (patch) | |
tree | e6561f2d5280ec197c2a947089a35eebf2657951 /src | |
parent | 3db5961c5a72d283f7714d6b9a447f64fff6903c (diff) | |
download | chawan-9ba9cb41aac6da09c8018a6e4cf4dd7e81f6eb96.tar.gz |
response: automatically resume before close
doing it manually is too error prone
Diffstat (limited to 'src')
-rw-r--r-- | src/html/dom.nim | 5 | ||||
-rw-r--r-- | src/local/pager.nim | 3 | ||||
-rw-r--r-- | src/server/response.nim | 5 |
3 files changed, 4 insertions, 9 deletions
diff --git a/src/html/dom.nim b/src/html/dom.nim index e7ca7565..5fbea56e 100644 --- a/src/html/dom.nim +++ b/src/html/dom.nim @@ -552,10 +552,8 @@ proc create2DContext(jctx: JSContext; target: HTMLCanvasElement; if response.res != 0: # no canvas module; give up ps.sclose() - ctlres.resume() ctlres.close() return - ctlres.resume() ctlres.close() response.resume() target.ctx2d = CanvasRenderingContext2D( @@ -3465,7 +3463,6 @@ proc loadResource*(window: Window; image: HTMLImageElement) = body = RequestBody(t: rbtOutput, outputId: response.outputId), ) let r = window.corsFetch(request) - response.resume() response.close() var expiry = -1i64 if "Cache-Control" in response.headers: @@ -3485,7 +3482,6 @@ proc loadResource*(window: Window; image: HTMLImageElement) = return let response = res.get # close immediately; all data we're interested in is in the headers. - response.resume() response.close() if "Cha-Image-Dimensions" notin response.headers.table: window.console.error("Cha-Image-Dimensions missing in", @@ -4915,7 +4911,6 @@ proc toBlob(ctx: JSContext; this: HTMLCanvasElement; callback: JSValue; headers = headers, body = RequestBody(t: rbtOutput, outputId: res.outputId) )) - res.resume() res.close() return p ).then(proc(res: JSResult[Response]) = diff --git a/src/local/pager.nim b/src/local/pager.nim index a2745be9..b77c85f4 100644 --- a/src/local/pager.nim +++ b/src/local/pager.nim @@ -1065,7 +1065,6 @@ proc loadCachedImage(pager: Pager; container: Container; image: PosBitmap; pager.loader.removeCachedItem(cacheId) return newResolvedPromise(res) ) - response.resume() response.close() return p ).then(proc(res: JSResult[Response]) = @@ -1098,7 +1097,6 @@ proc loadCachedImage(pager: Pager; container: Container; image: PosBitmap; tocache = true ) let r = pager.loader.fetch(request) - response.resume() response.close() r.then(proc(res: JSResult[Response]) = # remove previous step @@ -1106,7 +1104,6 @@ proc loadCachedImage(pager: Pager; container: Container; image: PosBitmap; if res.isNone: return let response = res.get - response.resume() response.close() let cacheId = res.get.outputId if cachedImage.state == cisCanceled: diff --git a/src/server/response.nim b/src/server/response.nim index 1f68932a..f79fbd9b 100644 --- a/src/server/response.nim +++ b/src/server/response.nim @@ -83,8 +83,11 @@ func surl*(response: Response): string {.jsfget: "url".} = return $response.url #TODO: this should be a property of body -proc close*(response: Response) {.jsfunc.} = +proc close*(response: Response) = response.bodyUsed = true + if response.resumeFun != nil: + response.resumeFun(response.outputId) + response.resumeFun = nil if response.unregisterFun != nil: response.unregisterFun() response.unregisterFun = nil |