From a101ab4cf5d3bec88dde0255c6a1b9fad8a86383 Mon Sep 17 00:00:00 2001 From: Mike Morris Date: Tue, 15 Sep 2015 13:27:45 -0400 Subject: [PATCH] [node] throw if a render is already pending, fixes #2247 --- platform/node/src/node_map.cpp | 4 ++++ platform/node/test/js/map.test.js | 8 ++------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/platform/node/src/node_map.cpp b/platform/node/src/node_map.cpp index 5b2a83916..f1abf4806 100644 --- a/platform/node/src/node_map.cpp +++ b/platform/node/src/node_map.cpp @@ -186,6 +186,10 @@ NAN_METHOD(NodeMap::Render) { return Nan::ThrowTypeError("Style is not loaded"); } + if (nodeMap->callback) { + return Nan::ThrowError("Map is currently rendering an image"); + } + auto options = ParseOptions(info[0]->ToObject()); assert(!nodeMap->callback); diff --git a/platform/node/test/js/map.test.js b/platform/node/test/js/map.test.js index 295fec693..1581d15cb 100644 --- a/platform/node/test/js/map.test.js +++ b/platform/node/test/js/map.test.js @@ -266,18 +266,14 @@ test('Map', function(t) { render(); }); - t.skip('throws if called in parallel', function(t) { - var completed = 0; - var remaining = 10; - var start = +new Date; - + t.test('throws if called in parallel', function(t) { var map = new mbgl.Map(options); map.load(style); t.throws(function() { map.render({}, function() {}); map.render({}, function() {}); - }); + }, /Map is currently rendering an image/); map.release(); t.end();