diff --git a/libs/esl/fs_cli.c b/libs/esl/fs_cli.c index 108b42cf6e..751d9868d2 100644 --- a/libs/esl/fs_cli.c +++ b/libs/esl/fs_cli.c @@ -1357,7 +1357,12 @@ int main(int argc, char *argv[]) } global_handle = &handle; global_profile = profile; - esl_thread_create_detached(msg_thread_run, &handle); + + if (esl_thread_create_detached(msg_thread_run, &handle) != ESL_SUCCESS) { + printf("Error starting thread!\n"); + esl_disconnect(&handle); + return 0; + } #ifdef HAVE_EDITLINE el = el_init(__FILE__, stdin, stdout, stderr); diff --git a/libs/esl/src/esl_threadmutex.c b/libs/esl/src/esl_threadmutex.c index 28007727d6..34fa6bb96a 100644 --- a/libs/esl/src/esl_threadmutex.c +++ b/libs/esl/src/esl_threadmutex.c @@ -60,7 +60,7 @@ struct esl_thread { #endif }; -size_t thread_default_stacksize = 240; +size_t thread_default_stacksize = 240 * 1024; void esl_thread_override_default_stacksize(size_t size) { @@ -119,7 +119,9 @@ esl_status_t esl_thread_create_detached_ex(esl_thread_function_t func, void *dat status = ESL_SUCCESS; goto done; + failpthread: + pthread_attr_destroy(&thread->attribute); #endif