Index: tls.c ================================================================== --- tls.c +++ tls.c @@ -1770,19 +1770,19 @@ static int TlsLibInit () { int i; char rnd_seed[16] = "GrzSlplKqUdnnzP!"; /* 16 bytes */ + int status=TCL_OK; #if defined(OPENSSL_THREADS) && defined(TCL_THREADS) size_t num_locks; -#endif - int status=TCL_OK; if (!initialized) { Tcl_MutexLock(&init_mx); if (!initialized) { initialized = 1; +#endif if (CRYPTO_set_mem_functions((void *(*)(size_t))Tcl_Alloc, (void *(*)(void *, size_t))Tcl_Realloc, (void(*)(void *))Tcl_Free) == 0) { /* Not using Tcl's mem functions ... not critical */ @@ -1825,9 +1825,11 @@ RAND_seed(rnd_seed, sizeof(rnd_seed)); } while (RAND_status() != 1); } done: +#if defined(OPENSSL_THREADS) && defined(TCL_THREADS) Tcl_MutexUnlock(&init_mx); +#endif } return status; }