idealvin/coost

协程中不能用jvm->AttachCurrentThread吗

kamylee opened this issue · 2 comments

我在ndk中的Native函数中成功的调用jvm->AttachCurrentThread(主线程)。可以正常的调用java的clashh方法。
也能在std::thread线程中成功获取:
std::thread nativeThread([B]() { // 将子线程附加到Java虚拟机上 JavaVM* pJvm = JniHelper::getJavaVM(); JNIEnv *envSub = nullptr; pJvm->AttachCurrentThread(&envSub, nullptr);
但是在http::Server().on_req(cb).start()中的cb函数中却无法获取,是协程不支持吗,无法获取线程ID造成的吗?

http::Server 内部可能有多个线程,cb 可能被多个线程调用

那有没有解决方法啊?我实际上是把一个Http连接升级成了websocket。然后一直保持着连接(循环收发信息)。按理此时就只是一个线程来处理这个CB吧?有什么办法支持jvm->AttachCurrentThread吗?