static CAResult_t CAEDRCreateMutex() { OIC_LOG(DEBUG, TAG, "IN"); g_mutexUnicastServer = u_mutex_new(); if (!g_mutexUnicastServer) { OIC_LOG(ERROR, TAG, "Failed to created mutex!"); return CA_STATUS_FAILED; } g_mutexMulticastServer = u_mutex_new(); if (!g_mutexMulticastServer) { OIC_LOG(ERROR, TAG, "Failed to created mutex!"); CAEDRDestroyMutex(); return CA_STATUS_FAILED; } g_mutexSocketListManager = u_mutex_new(); if (!g_mutexSocketListManager) { OIC_LOG(ERROR, TAG, "Failed to created mutex!"); CAEDRDestroyMutex(); return CA_STATUS_FAILED; } OIC_LOG(DEBUG, TAG, "OUT"); return CA_STATUS_OK; }
static CAResult_t CAEDRCreateMutex() { g_mutexStateList = ca_mutex_new(); if (!g_mutexStateList) { OIC_LOG(ERROR, TAG, "Failed to created mutex!"); CAEDRDestroyMutex(); return CA_STATUS_FAILED; } g_mutexObjectList = ca_mutex_new(); if (!g_mutexObjectList) { OIC_LOG(ERROR, TAG, "Failed to created mutex!"); CAEDRDestroyMutex(); return CA_STATUS_FAILED; } return CA_STATUS_OK; }
void CAEDRTerminate() { OIC_LOG(DEBUG, TAG, "CAEDRTerminate"); bool isAttached = false; JNIEnv* env; jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6); if (JNI_OK != res) { OIC_LOG(DEBUG, TAG, "CAEDRTerminate - Could not get JNIEnv pointer"); res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL); if (JNI_OK != res) { OIC_LOG(ERROR, TAG, "AttachCurrentThread failed"); return; } isAttached = true; } g_stopAccept = true; g_stopMulticast = true; g_stopUnicast = true; if (isAttached) { (*g_jvm)->DetachCurrentThread(g_jvm); } if (g_context) { (*env)->DeleteGlobalRef(env, g_context); } CAEDRNativeSocketCloseToAll(env); // delete mutex CAEDRDestroyMutex(); CAEDRNativeRemoveAllDeviceState(); CAEDRNativeRemoveAllDeviceSocket(env); CAEDRDestroyJniInterface(); }
void CAEDRTerminate() { OIC_LOG(DEBUG, TAG, "CAEDRTerminate"); jboolean isAttached = JNI_FALSE; JNIEnv* env; jint res = (*g_jvm)->GetEnv(g_jvm, (void**)&env, JNI_VERSION_1_6); if(res != JNI_OK) { OIC_LOG(DEBUG, TAG, "CAEDRTerminate - Could not get JNIEnv pointer"); res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL); if(res != JNI_OK) { OIC_LOG(DEBUG, TAG, "AttachCurrentThread failed"); return; } isAttached = JNI_TRUE; } g_stopAccept = true; g_stopMulticast = true; g_stopUnicast = true; if(isAttached) (*g_jvm)->DetachCurrentThread(g_jvm); if(g_context) { (*env)->DeleteGlobalRef(env, g_context); } // delete mutex CAEDRDestroyMutex(); CAEDRNativeRemoveAllDeviceState(); CAEDRNativeRemoveAllDeviceSocket(env); }