| Index: src/d8.cc
|
| diff --git a/src/d8.cc b/src/d8.cc
|
| index 5fa7c262994c77076951bf97022d00e2c0119731..246c8f038c33920b5595b3f1c979566c135ee99c 100644
|
| --- a/src/d8.cc
|
| +++ b/src/d8.cc
|
| @@ -75,6 +75,7 @@ namespace v8 {
|
| namespace {
|
|
|
| const int MB = 1024 * 1024;
|
| +const int kMaxWorkers = 50;
|
|
|
|
|
| class ShellArrayBufferAllocator : public v8::ArrayBuffer::Allocator {
|
| @@ -706,6 +707,11 @@ void Shell::WorkerNew(const v8::FunctionCallbackInfo<v8::Value>& args) {
|
|
|
| {
|
| base::LockGuard<base::Mutex> lock_guard(workers_mutex_.Pointer());
|
| + if (workers_.length() >= kMaxWorkers) {
|
| + Throw(args.GetIsolate(), "Too many workers, I won't let you create more");
|
| + return;
|
| + }
|
| +
|
| // Initialize the internal field to NULL; if we return early without
|
| // creating a new Worker (because the main thread is terminating) we can
|
| // early-out from the instance calls.
|
|
|