diff options
-rwxr-xr-x | resource/src/InProcClientWrapper.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/resource/src/InProcClientWrapper.cpp b/resource/src/InProcClientWrapper.cpp index 132d082d5..433d84008 100755 --- a/resource/src/InProcClientWrapper.cpp +++ b/resource/src/InProcClientWrapper.cpp @@ -962,15 +962,21 @@ namespace OC try { rep = parseGetSetCallback(clientResponse); + OIC_LOG_V(DEBUG, TAG, "%s: call response callback", __func__); + std::thread exec(context->callback, serverHeaderOptions, rep, result); + exec.detach(); } catch(OC::OCException& e) { - result = e.code(); + oclog() << "Exception in parseGetSetCallback, ignoring callback: " + << e.what() << std::flush; + } + catch(const std::exception& e) + { + oclog() << "Exception in thread execution, ignoring callback: " + << e.what() << std::flush; } - OIC_LOG_V(DEBUG, TAG, "%s: call response callback", __func__); - std::thread exec(context->callback, serverHeaderOptions, rep, result); - exec.detach(); return OC_STACK_DELETE_TRANSACTION; } |