diff options
| author | Ryan Dahl <ry@tinyclouds.org> | 2018-05-28 14:56:13 -0400 |
|---|---|---|
| committer | Ryan Dahl <ry@tinyclouds.org> | 2018-05-28 14:59:02 -0400 |
| commit | 666a0f3a3e79381aeee7e6676d50b5bef9c80947 (patch) | |
| tree | 067eedf62437d8d338e6db84b9988ef3019e32d5 | |
| parent | 46117017c4b2b7024da27150e0eda1408a819750 (diff) | |
Fix wg ref counting for fetch.
| -rw-r--r-- | dispatch.go | 3 | ||||
| -rw-r--r-- | tests.ts | 19 |
2 files changed, 14 insertions, 8 deletions
diff --git a/dispatch.go b/dispatch.go index 3746ece35..8f22f8f5d 100644 --- a/dispatch.go +++ b/dispatch.go @@ -80,7 +80,6 @@ func PubMsg(channel string, msg *Msg) { } func DispatchLoop() { - // runtime.LockOSThread() wg.Add(1) first := true @@ -96,7 +95,6 @@ func DispatchLoop() { for { select { case msg := <-resChan: - wg.Done() out, err := proto.Marshal(msg) if err != nil { panic(err) @@ -105,6 +103,7 @@ func DispatchLoop() { stats.v8workerSend++ stats.v8workerBytesSent += len(out) exitOnError(err) + wg.Done() // Corresponds to the wg.Add(1) in Pub(). case <-doneChan: // All goroutines have completed. Now we can exit main(). return @@ -1,13 +1,25 @@ // This test is executed as part of integration_test.go // But it can also be run manually: // ./deno tests.ts +// There must also be a static file http server running on localhost:4545 +// serving the deno project directory. Try this: +// http-server -p 4545 --cors . import { test, assert, assertEqual } from "./deno_testing/testing.ts"; -import { readFileSync, writeFileSync } from "deno"; +import { + readFileSync, + writeFileSync +} from "deno"; test(async function tests_test() { assert(true); }); +test(async function tests_fetch() { + const response = await fetch('http://localhost:4545/package.json'); + const json = await response.json(); + assertEqual(json.name, "deno"); +}); + test(async function tests_readFileSync() { let data = readFileSync("package.json"); if (!data.byteLength) { @@ -33,8 +45,3 @@ test(async function tests_writeFileSync() { assertEqual("Hello", actual); }); -test(async function tests_fetch() { - const response = await fetch("http://localhost:4545/package.json"); - const json = await response.json(); - assertEqual(json.name, "deno"); -}); |
