}\
}
-#define RUN_POLLING_LOOP {\
- if(!g_bCallbackCalled) {\
- guint nTimeoutId;\
- g_pMainLoop = g_main_loop_new(NULL, false);\
- nTimeoutId = g_timeout_add(TIMEOUT_CB, Timeout, g_pMainLoop);\
- dlog_print(DLOG_DEBUG, "NativeTCT", "[%s(%d)] call g_main_loop_run(), g_pMainLoop[%p]", __FUNCTION__, __LINE__, g_pMainLoop);\
- g_main_loop_run(g_pMainLoop);\
- g_source_remove(nTimeoutId);\
- g_pMainLoop = NULL;\
- }\
-}
+#define RUN_POLLING_LOOP(x_mainloop, x_cb_called)\
+do {\
+ if(x_cb_called)\
+ break;\
+ x_mainloop = g_main_loop_new(NULL, false);\
+ guint timeout_id = g_timeout_add(TIMEOUT_CB, Timeout, x_mainloop);\
+ dlog_print(DLOG_DEBUG, "NativeTCT", "[%s(%d)] call g_main_loop_run(), mainloop[%p]", __FUNCTION__, __LINE__, x_mainloop);\
+ g_main_loop_run(x_mainloop);\
+ g_source_remove(timeout_id);\
+ x_mainloop = NULL;\
+} while (0)
-#define QUIT_LOOP {\
- if (g_pMainLoop) {\
- dlog_print(DLOG_DEBUG, "NativeTCT", "[%s(%d)] call g_main_loop_quit(), g_pMainLoop[%p]", __FUNCTION__, __LINE__, g_pMainLoop);\
- g_main_loop_quit(g_pMainLoop);\
- }\
-}
+#define QUIT_LOOP(x_mainloop)\
+do {\
+ if (!x_mainloop)\
+ break;\
+ dlog_print(DLOG_DEBUG, "NativeTCT", "[%s(%d)] call g_main_loop_quit(), mainloop[%p]", __FUNCTION__, __LINE__, x_mainloop);\
+ g_main_loop_quit(x_mainloop);\
+} while (0)
#define CHECK_HANDLE_CLEANUP(Handle, API, FreeResource) {\
if (!Handle) {\
{
g_bCallbackCalled = true;
FPRINTF("[Line : %d][%s] Callback webrtcSessionDescriptionCreatedCB called\\n", __LINE__, API_NAMESPACE);
- QUIT_LOOP;
+ QUIT_LOOP(g_pMainLoop);
}
/**
{
g_bCallbackCalled = true;
FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB called\\n", __LINE__, API_NAMESPACE);
- QUIT_LOOP;
+ QUIT_LOOP(g_pMainLoop);
}
/**
{
g_bCallbackCalled = true;
FPRINTF("[Line : %d][%s] Callback webrtcSignalingStateChangeCB called\\n", __LINE__, API_NAMESPACE);
- QUIT_LOOP;
+ QUIT_LOOP(g_pMainLoop);
}
/**
nRet = webrtc_start(g_hWebRtcHandle);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet));
- RUN_POLLING_LOOP;
+ RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled);
if (!g_bCallbackCalled) {
FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked for %s\\n", __LINE__, API_NAMESPACE, "webrtc_set_state_changed_cb");
return 1;
nRet = webrtc_start(hWebRtcHandle);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet));
- RUN_POLLING_LOOP;
+ RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled);
if (!g_bCallbackCalled) {
FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE);
return 1;
nRet = webrtc_start(hLocalWebRtcHandle);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet));
- RUN_POLLING_LOOP;
+ RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled);
if (!g_bCallbackCalled) {
FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE);
return 1;
nRet = webrtc_set_remote_description(hLocalWebRtcHandle, pszOffer);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_remote_description", WebRtcGetError(nRet));
- RUN_POLLING_LOOP;
+ RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled);
if (!g_bCallbackCalled) {
FPRINTF("[Line : %d][%s] Callback webrtcSignalingStateChangeCB not invoked\\n", __LINE__, API_NAMESPACE);
return 1;
nRet = webrtc_start(g_hWebRtcHandle);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet));
- RUN_POLLING_LOOP;
+ RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled);
if (!g_bCallbackCalled) {
FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE);
return 1;
nRet = webrtc_start(g_hWebRtcHandle);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet));
- RUN_POLLING_LOOP;
+ RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled);
if (!g_bCallbackCalled) {
FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE);
return 1;
nRet = webrtc_start(hLocalWebRtcHandle);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet));
- RUN_POLLING_LOOP;
+ RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled);
if (!g_bCallbackCalled) {
FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE);
return 1;
nRet = webrtc_start(g_hWebRtcHandle);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet));
- RUN_POLLING_LOOP;
+ RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled);
if (!g_bCallbackCalled) {
FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE);
return 1;
nRet = webrtc_start(g_hWebRtcHandle);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet));
- RUN_POLLING_LOOP;
+ RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled);
if (!g_bCallbackCalled) {
FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE);
return 1;
nRet = webrtc_create_offer_async(g_hWebRtcHandle, NULL, webrtcSessionDescriptionCreatedCB, NULL);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_create_offer_async", WebRtcGetError(nRet));
- RUN_POLLING_LOOP;
+ RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled);
if (!g_bCallbackCalled) {
FPRINTF("[Line : %d][%s] Callback webrtcSessionDescriptionCreatedCB not invoked\\n", __LINE__, API_NAMESPACE);
return 1;
nRet = webrtc_start(g_hWebRtcHandle);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet));
- RUN_POLLING_LOOP;
+ RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled);
if (!g_bCallbackCalled) {
FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE);
return 1;
nRet = webrtc_start(hLocalWebRtcHandle);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet));
- RUN_POLLING_LOOP;
+ RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled);
if (!g_bCallbackCalled) {
FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE);
return 1;
nRet = webrtc_set_remote_description(hLocalWebRtcHandle, pszOffer);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_remote_description", WebRtcGetError(nRet));
- RUN_POLLING_LOOP;
+ RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled);
if (!g_bCallbackCalled) {
FPRINTF("[Line : %d][%s] Callback webrtcSignalingStateChangeCB not invoked\\n", __LINE__, API_NAMESPACE);
return 1;
nRet = webrtc_create_answer_async(hLocalWebRtcHandle, NULL, webrtcSessionDescriptionCreatedCB, NULL);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_create_answer_async", WebRtcGetError(nRet));
- RUN_POLLING_LOOP;
+ RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled);
if (!g_bCallbackCalled) {
FPRINTF("[Line : %d][%s] Callback webrtcSessionDescriptionCreatedCB not invoked\\n", __LINE__, API_NAMESPACE);
return 1;
nRet = webrtc_start(g_hWebRtcHandle);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet));
- RUN_POLLING_LOOP;
+ RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled);
if (!g_bCallbackCalled) {
FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE);
return 1;
nRet = webrtc_start(g_hWebRtcHandle);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet));
- RUN_POLLING_LOOP;
+ RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled);
if (!g_bCallbackCalled) {
FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE);
return 1;
nRet = webrtc_start(g_hWebRtcHandle);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet));
- RUN_POLLING_LOOP;
+ RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled);
if (!g_bCallbackCalled) {
FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE);
return 1;
nRet = webrtc_start(g_hWebRtcHandle);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet));
- RUN_POLLING_LOOP;
+ RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled);
if (!g_bCallbackCalled) {
FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE);
return 1;