diff --git a/ggml/src/ggml-cuda.cu b/ggml/src/ggml-cuda.cu index bf0235b4..5bc773a9 100644 --- a/ggml/src/ggml-cuda.cu +++ b/ggml/src/ggml-cuda.cu @@ -457,6 +457,10 @@ ggml_backend_cuda_context::ggml_backend_cuda_context(int device) : } ggml_backend_cuda_context::~ggml_backend_cuda_context() { + + std::unique_lock lock(ggml_cuda_lock); + ggml_cuda_lock_cv.wait(lock, []{ return ggml_cuda_lock_counter.load(std::memory_order_relaxed) == 0; }); + if (copy_event != nullptr) { CUDA_CHECK(cudaEventDestroy(copy_event)); }