forked from wolfSSL/wolfssl
Merge pull request #5668 from dgarske/smallstack_fixes
This commit is contained in:
@@ -672,17 +672,17 @@ static WC_INLINE int StackSizeCheck_launch(struct func_args* args,
|
|||||||
unsigned char* myStack = NULL;
|
unsigned char* myStack = NULL;
|
||||||
size_t stackSize = 1024*1024*2;
|
size_t stackSize = 1024*1024*2;
|
||||||
pthread_attr_t myAttr;
|
pthread_attr_t myAttr;
|
||||||
|
struct stack_size_debug_context* shim_args;
|
||||||
|
|
||||||
#ifdef PTHREAD_STACK_MIN
|
#ifdef PTHREAD_STACK_MIN
|
||||||
if (stackSize < PTHREAD_STACK_MIN)
|
if (stackSize < PTHREAD_STACK_MIN)
|
||||||
stackSize = PTHREAD_STACK_MIN;
|
stackSize = PTHREAD_STACK_MIN;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
struct stack_size_debug_context *shim_args =
|
shim_args = (struct stack_size_debug_context *)malloc(sizeof *shim_args);
|
||||||
(struct stack_size_debug_context *)malloc(sizeof *shim_args);
|
if (shim_args == NULL) {
|
||||||
if (! shim_args) {
|
|
||||||
perror("malloc");
|
perror("malloc");
|
||||||
exit(EXIT_FAILURE);
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = posix_memalign((void**)&myStack, sysconf(_SC_PAGESIZE), stackSize);
|
ret = posix_memalign((void**)&myStack, sysconf(_SC_PAGESIZE), stackSize);
|
||||||
@@ -697,6 +697,8 @@ static WC_INLINE int StackSizeCheck_launch(struct func_args* args,
|
|||||||
ret = pthread_attr_init(&myAttr);
|
ret = pthread_attr_init(&myAttr);
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
fprintf(stderr, "attr_init failed\n");
|
fprintf(stderr, "attr_init failed\n");
|
||||||
|
free(shim_args);
|
||||||
|
free(myStack);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1242,13 +1242,6 @@ typedef struct w64wrapper {
|
|||||||
#endif
|
#endif
|
||||||
typedef void* THREAD_TYPE;
|
typedef void* THREAD_TYPE;
|
||||||
#define WOLFSSL_THREAD
|
#define WOLFSSL_THREAD
|
||||||
#elif (defined(_POSIX_THREADS) || defined(HAVE_PTHREAD)) && \
|
|
||||||
!defined(__MINGW32__)
|
|
||||||
typedef void* THREAD_RETURN;
|
|
||||||
typedef pthread_t THREAD_TYPE;
|
|
||||||
#define WOLFSSL_THREAD
|
|
||||||
#define INFINITE (-1)
|
|
||||||
#define WAIT_OBJECT_0 0L
|
|
||||||
#elif defined(WOLFSSL_MDK_ARM) || defined(WOLFSSL_KEIL_TCP_NET) || \
|
#elif defined(WOLFSSL_MDK_ARM) || defined(WOLFSSL_KEIL_TCP_NET) || \
|
||||||
defined(FREESCALE_MQX)
|
defined(FREESCALE_MQX)
|
||||||
typedef unsigned int THREAD_RETURN;
|
typedef unsigned int THREAD_RETURN;
|
||||||
@@ -1257,18 +1250,10 @@ typedef struct w64wrapper {
|
|||||||
#elif defined(WOLFSSL_TIRTOS)
|
#elif defined(WOLFSSL_TIRTOS)
|
||||||
typedef void THREAD_RETURN;
|
typedef void THREAD_RETURN;
|
||||||
typedef Task_Handle THREAD_TYPE;
|
typedef Task_Handle THREAD_TYPE;
|
||||||
#ifdef HAVE_STACK_SIZE
|
|
||||||
#undef EXIT_TEST
|
|
||||||
#define EXIT_TEST(ret)
|
|
||||||
#endif
|
|
||||||
#define WOLFSSL_THREAD
|
#define WOLFSSL_THREAD
|
||||||
#elif defined(WOLFSSL_ZEPHYR)
|
#elif defined(WOLFSSL_ZEPHYR)
|
||||||
typedef void THREAD_RETURN;
|
typedef void THREAD_RETURN;
|
||||||
typedef struct k_thread THREAD_TYPE;
|
typedef struct k_thread THREAD_TYPE;
|
||||||
#ifdef HAVE_STACK_SIZE
|
|
||||||
#undef EXIT_TEST
|
|
||||||
#define EXIT_TEST(ret)
|
|
||||||
#endif
|
|
||||||
#define WOLFSSL_THREAD
|
#define WOLFSSL_THREAD
|
||||||
#elif defined(NETOS)
|
#elif defined(NETOS)
|
||||||
typedef UINT THREAD_RETURN;
|
typedef UINT THREAD_RETURN;
|
||||||
@@ -1280,6 +1265,13 @@ typedef struct w64wrapper {
|
|||||||
typedef unsigned int THREAD_RETURN;
|
typedef unsigned int THREAD_RETURN;
|
||||||
typedef size_t THREAD_TYPE;
|
typedef size_t THREAD_TYPE;
|
||||||
#define WOLFSSL_THREAD
|
#define WOLFSSL_THREAD
|
||||||
|
#elif (defined(_POSIX_THREADS) || defined(HAVE_PTHREAD)) && \
|
||||||
|
!defined(__MINGW32__)
|
||||||
|
typedef void* THREAD_RETURN;
|
||||||
|
typedef pthread_t THREAD_TYPE;
|
||||||
|
#define WOLFSSL_THREAD
|
||||||
|
#define INFINITE (-1)
|
||||||
|
#define WAIT_OBJECT_0 0L
|
||||||
#else
|
#else
|
||||||
typedef unsigned int THREAD_RETURN;
|
typedef unsigned int THREAD_RETURN;
|
||||||
typedef size_t THREAD_TYPE;
|
typedef size_t THREAD_TYPE;
|
||||||
|
Reference in New Issue
Block a user