From d586f119fa588a590a4ba2b74c8c210de710e3e7 Mon Sep 17 00:00:00 2001 From: Nayeem Rahman Date: Sat, 9 Nov 2019 19:40:22 +0000 Subject: net: Check for closing status when iterating Listener (#3309) std/http/server.ts: Use listener.next() instead of listener.accept() --- cli/js/net_test.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'cli/js/net_test.ts') diff --git a/cli/js/net_test.ts b/cli/js/net_test.ts index 33f4f7d07..dc7451434 100644 --- a/cli/js/net_test.ts +++ b/cli/js/net_test.ts @@ -77,6 +77,18 @@ testPerm({ net: true }, async function netDialListen(): Promise { conn.close(); }); +testPerm({ net: true }, async function netListenCloseWhileIterating(): Promise< + void +> { + const listener = Deno.listen({ port: 8000 }); + const nextWhileClosing = listener[Symbol.asyncIterator]().next(); + listener.close(); + assertEquals(await nextWhileClosing, { value: undefined, done: true }); + + const nextAfterClosing = listener[Symbol.asyncIterator]().next(); + assertEquals(await nextAfterClosing, { value: undefined, done: true }); +}); + /* TODO(ry) Re-enable this test. testPerm({ net: true }, async function netListenAsyncIterator(): Promise { const listener = Deno.listen(":4500"); -- cgit v1.2.3