diff --git a/dispatch.go b/dispatch.go index 3746ece354..8f22f8f5d9 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 diff --git a/tests.ts b/tests.ts index b2c7ee5135..921eeb72c7 100644 --- a/tests.ts +++ b/tests.ts @@ -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"); -});