[android] attach/detach core thread pool's threads to JVM
This commit is contained in:
committed by
Łukasz Paczos
parent
7d6255c860
commit
470b99e795
@@ -5,11 +5,17 @@
|
||||
#include <sys/prctl.h>
|
||||
#include <sys/resource.h>
|
||||
|
||||
#include <cassert>
|
||||
#include "jni.hpp"
|
||||
|
||||
// Implementation based on Chromium's platform_thread_android.cc.
|
||||
|
||||
namespace mbgl {
|
||||
namespace platform {
|
||||
|
||||
thread_local static JNIEnv* env;
|
||||
thread_local static bool detach;
|
||||
|
||||
std::string getCurrentThreadName() {
|
||||
char name[32] = "unknown";
|
||||
|
||||
@@ -35,9 +41,15 @@ void makeThreadLowPriority() {
|
||||
}
|
||||
|
||||
void attachThread() {
|
||||
using namespace android;
|
||||
assert(env == nullptr);
|
||||
detach = attach_jni_thread(theJVM, &env, platform::getCurrentThreadName());
|
||||
}
|
||||
|
||||
void detachThread() {
|
||||
using namespace android;
|
||||
assert(env);
|
||||
detach_jni_thread(theJVM, &env, detach);
|
||||
}
|
||||
|
||||
} // namespace platform
|
||||
|
||||
Reference in New Issue
Block a user