| Index: src/wasm/wasm-module.h
|
| diff --git a/src/wasm/wasm-module.h b/src/wasm/wasm-module.h
|
| index 180f5bcde39f000fa0c9169eee1c0a0eea52ba4c..0aa4b0f65f12ca780a02a5f4f6602b91eee61d93 100644
|
| --- a/src/wasm/wasm-module.h
|
| +++ b/src/wasm/wasm-module.h
|
| @@ -178,6 +178,14 @@ struct WasmModule {
|
| std::vector<uint16_t> function_table; // function table.
|
| std::vector<WasmImport> import_table; // import table.
|
| std::vector<WasmExport> export_table; // export table.
|
| + // We store the semaphore here to extend its lifetime. In libc-2.19, which we
|
| + // use on the try bots, semaphore::Wait() can return while some compilation
|
| + // tasks are still executing semaphore::Signal(). If the semaphore is cleaned
|
| + // up right after semaphore::Wait() returns, then this can cause an
|
| + // invalid-semaphore error in the compilation tasks.
|
| + // TODO(wasm): Move this semaphore back to CompileInParallel when the try bots
|
| + // switch to libc-2.21 or higher.
|
| + base::SmartPointer<base::Semaphore> pending_tasks;
|
|
|
| WasmModule();
|
|
|
|
|