Loading crypto/include/internal/cryptlib_int.h +1 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ struct thread_local_inits_st { int async; int err_state; }; void *ossl_init_get_thread_local(int alloc); int ossl_init_thread_start(uint64_t opts); /* * OPENSSL_INIT flags. The primary list of these is in crypto.h. Flags below Loading crypto/init.c +19 −5 Original line number Diff line number Diff line Loading @@ -95,11 +95,19 @@ static void ossl_init_thread_stop_cleanup(void) } static struct thread_local_inits_st *local = NULL; void *ossl_init_get_thread_local(int alloc) static struct thread_local_inits_st *ossl_init_get_thread_local(int alloc) { static struct thread_local_inits_st *tmp; tmp = local; if (local == NULL && alloc) local = OPENSSL_zalloc(sizeof(*local)); return local; tmp = local = OPENSSL_zalloc(sizeof(*local)); if (!alloc) local = NULL; return tmp; } #elif defined(OPENSSL_SYS_WINDOWS) Loading Loading @@ -182,7 +190,7 @@ static void ossl_init_thread_stop_cleanup(void) } } void *ossl_init_get_thread_local(int alloc) static struct thread_local_inits_st *ossl_init_get_thread_local(int alloc) { struct thread_local_inits_st *local = TlsGetValue(threadstopkey); Loading @@ -190,6 +198,9 @@ void *ossl_init_get_thread_local(int alloc) local = OPENSSL_zalloc(sizeof *local); TlsSetValue(threadstopkey, local); } if (!alloc) { TlsSetValue(threadstopkey, NULL); } return local; } Loading Loading @@ -227,7 +238,7 @@ static void ossl_init_thread_stop_cleanup(void) { } void *ossl_init_get_thread_local(int alloc) static struct thread_local_inits_st *ossl_init_get_thread_local(int alloc) { struct thread_local_inits_st *local = pthread_getspecific(threadstopkey); Loading @@ -235,6 +246,9 @@ void *ossl_init_get_thread_local(int alloc) local = OPENSSL_zalloc(sizeof *local); pthread_setspecific(threadstopkey, local); } if (!alloc) { pthread_setspecific(threadstopkey, NULL); } return local; } Loading Loading
crypto/include/internal/cryptlib_int.h +1 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ struct thread_local_inits_st { int async; int err_state; }; void *ossl_init_get_thread_local(int alloc); int ossl_init_thread_start(uint64_t opts); /* * OPENSSL_INIT flags. The primary list of these is in crypto.h. Flags below Loading
crypto/init.c +19 −5 Original line number Diff line number Diff line Loading @@ -95,11 +95,19 @@ static void ossl_init_thread_stop_cleanup(void) } static struct thread_local_inits_st *local = NULL; void *ossl_init_get_thread_local(int alloc) static struct thread_local_inits_st *ossl_init_get_thread_local(int alloc) { static struct thread_local_inits_st *tmp; tmp = local; if (local == NULL && alloc) local = OPENSSL_zalloc(sizeof(*local)); return local; tmp = local = OPENSSL_zalloc(sizeof(*local)); if (!alloc) local = NULL; return tmp; } #elif defined(OPENSSL_SYS_WINDOWS) Loading Loading @@ -182,7 +190,7 @@ static void ossl_init_thread_stop_cleanup(void) } } void *ossl_init_get_thread_local(int alloc) static struct thread_local_inits_st *ossl_init_get_thread_local(int alloc) { struct thread_local_inits_st *local = TlsGetValue(threadstopkey); Loading @@ -190,6 +198,9 @@ void *ossl_init_get_thread_local(int alloc) local = OPENSSL_zalloc(sizeof *local); TlsSetValue(threadstopkey, local); } if (!alloc) { TlsSetValue(threadstopkey, NULL); } return local; } Loading Loading @@ -227,7 +238,7 @@ static void ossl_init_thread_stop_cleanup(void) { } void *ossl_init_get_thread_local(int alloc) static struct thread_local_inits_st *ossl_init_get_thread_local(int alloc) { struct thread_local_inits_st *local = pthread_getspecific(threadstopkey); Loading @@ -235,6 +246,9 @@ void *ossl_init_get_thread_local(int alloc) local = OPENSSL_zalloc(sizeof *local); pthread_setspecific(threadstopkey, local); } if (!alloc) { pthread_setspecific(threadstopkey, NULL); } return local; } Loading