server_thread
else if (h->blocking && !h->server_thread.ready) {
ossl_crypto_mutex_lock(h->server_thread.m);
h->server_thread.ready = 1;
ossl_crypto_condvar_signal(h->server_thread.c);
ossl_crypto_mutex_unlock(h->server_thread.m);
} server_thread;
if (h->server_thread.t == NULL)
ossl_crypto_mutex_lock(h->server_thread.m);
h->server_thread.stop = 1;
ossl_crypto_condvar_signal(h->server_thread.c);
ossl_crypto_mutex_unlock(h->server_thread.m);
ossl_crypto_thread_native_join(h->server_thread.t, &rv);
ossl_crypto_thread_native_clean(h->server_thread.t);
h->server_thread.t = NULL;
if (h->server_thread.m == NULL || *p_checked_out)
ossl_crypto_mutex_lock(h->server_thread.m);
if (h->server_thread.m == NULL || !*p_checked_out)
ossl_crypto_mutex_unlock(h->server_thread.m);
ossl_crypto_mutex_lock(h->server_thread.m);
ready = h->server_thread.ready;
stop = h->server_thread.stop;
ossl_crypto_condvar_wait(h->server_thread.c, h->server_thread.m);
ossl_crypto_mutex_unlock(h->server_thread.m);
ossl_crypto_mutex_lock(h->server_thread.m);
ossl_crypto_mutex_unlock(h->server_thread.m);
ossl_crypto_mutex_free(&h->server_thread.m);
ossl_crypto_condvar_free(&h->server_thread.c);
if (!TEST_ptr(h->server_thread.m = ossl_crypto_mutex_new()))
if (!TEST_ptr(h->server_thread.c = ossl_crypto_condvar_new()))
h->server_thread.t
if (!TEST_ptr(h->server_thread.t))
ATF_REQUIRE(pthread_create(&c->thr, NULL, server_thread, c) == 0);
static void *server_thread(void *arg);