this_ptr->handleWsiDestroy();
break;
- case LWS_CALLBACK_GET_THREAD_ID:
- return pthread_self();
-
case LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED:
case LWS_CALLBACK_ADD_POLL_FD:
case LWS_CALLBACK_DEL_POLL_FD:
case LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER:
case LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION:
case LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH:
+ case LWS_CALLBACK_GET_THREAD_ID:
break;
default:
MSF_DBG("writeRequest start");
if (wsi_mirror != NULL) {
lws_callback_on_writable(wsi_mirror);
+ if (pthread_self() != socketThreadId) {
+ MSF_DBG("current thread is different from websocket thread => lws_cancel_service()");
+ lws_cancel_service(lws_get_context(wsi_mirror)); // to exit from poll() inside of lws_service()
+ }
}
}