forked from OSchip/llvm-project
[mlir] AsyncRuntime: disable threading until test flakiness is fixed
ExecutionEngine/LLJIT do not run globals destructors in loaded dynamic libraries when destroyed, and threads managed by ThreadPool can race with program termination, and it leads to segfaults. TODO: Re-enable threading after fixing a problem with destructors, or removing static globals from dynamic library. Differential Revision: https://reviews.llvm.org/D92368
This commit is contained in:
parent
2b84efa000
commit
9edcedf7f2
|
@ -24,8 +24,6 @@
|
|||
#include <thread>
|
||||
#include <vector>
|
||||
|
||||
#include "llvm/Support/ThreadPool.h"
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Async runtime API.
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@ -45,7 +43,6 @@ public:
|
|||
AsyncRuntime() : numRefCountedObjects(0) {}
|
||||
|
||||
~AsyncRuntime() {
|
||||
threadPool.wait(); // wait for the completion of all async tasks
|
||||
assert(getNumRefCountedObjects() == 0 &&
|
||||
"all ref counted objects must be destroyed");
|
||||
}
|
||||
|
@ -54,8 +51,6 @@ public:
|
|||
return numRefCountedObjects.load(std::memory_order_relaxed);
|
||||
}
|
||||
|
||||
llvm::ThreadPool &getThreadPool() { return threadPool; }
|
||||
|
||||
private:
|
||||
friend class RefCounted;
|
||||
|
||||
|
@ -69,8 +64,6 @@ private:
|
|||
}
|
||||
|
||||
std::atomic<int32_t> numRefCountedObjects;
|
||||
|
||||
llvm::ThreadPool threadPool;
|
||||
};
|
||||
|
||||
// Returns the default per-process instance of an async runtime.
|
||||
|
@ -241,8 +234,7 @@ extern "C" void mlirAsyncRuntimeAwaitAllInGroup(AsyncGroup *group) {
|
|||
}
|
||||
|
||||
extern "C" void mlirAsyncRuntimeExecute(CoroHandle handle, CoroResume resume) {
|
||||
auto *runtime = getDefaultAsyncRuntimeInstance();
|
||||
runtime->getThreadPool().async([handle, resume]() { (*resume)(handle); });
|
||||
(*resume)(handle);
|
||||
}
|
||||
|
||||
extern "C" void mlirAsyncRuntimeAwaitTokenAndExecute(AsyncToken *token,
|
||||
|
|
Loading…
Reference in New Issue