Strict mode checking - no way to forget detaching now.

And if we forget to attach, boom. Hopefully I caught all of them.
This commit is contained in:
Henrik Rydgård
2023-01-05 08:38:52 +01:00
parent 916404f0e4
commit b56eef487c
17 changed files with 84 additions and 19 deletions
+7 -1
View File
@@ -133,6 +133,10 @@ static void WorkerThreadFunc(GlobalThreadContext *global, ThreadContext *thread)
}
SetCurrentThreadName(thread->name);
if (thread->type == TaskType::IO_BLOCKING) {
AttachThreadToJNI();
}
const bool isCompute = thread->type == TaskType::CPU_COMPUTE;
const auto global_queue_size = [isCompute, &global]() -> int {
return isCompute ? global->compute_queue_size.load() : global->io_queue_size.load();
@@ -187,7 +191,9 @@ static void WorkerThreadFunc(GlobalThreadContext *global, ThreadContext *thread)
}
// In case it got attached to JNI, detach it. Don't think this has any side effects if called redundantly.
DetachThreadFromJNI();
if (thread->type == TaskType::IO_BLOCKING) {
DetachThreadFromJNI();
}
}
void ThreadManager::Init(int numRealCores, int numLogicalCoresPerCpu) {