Lines Matching defs:RT
297 static void RADIX_THREAD_report_state(RADIX_THREAD *rt, BIO *bio)
303 if (rt->slot[i] == NULL)
307 rt->slot[i]->name,
308 (void *)rt->ssl[i]);
336 RADIX_THREAD *rt;
343 rt = sk_RADIX_THREAD_value(rp->threads, i);
345 ossl_crypto_mutex_lock(rt->m);
346 assert(rt->done);
347 rt_testresult = rt->testresult;
348 ossl_crypto_mutex_unlock(rt->m);
353 rp->node_idx, rp->process_idx, rt->thread_idx, rt->thread_idx);
355 BIO_snprintf(pfx_buf, sizeof(pfx_buf), "# -T-%2zu:\t# ", rt->thread_idx);
358 l = BIO_get_mem_data(rt->debug_bio, &p);
363 rt->thread_idx, rt_testresult);
365 RADIX_THREAD_report_state(rt, bio);
372 static int RADIX_THREAD_join(RADIX_THREAD *rt);
378 RADIX_THREAD *rt;
387 rt = sk_RADIX_THREAD_value(rp->threads, i);
391 if (!TEST_true(RADIX_THREAD_join(rt)))
394 if (!rt->testresult)
412 static void RADIX_THREAD_free(RADIX_THREAD *rt);
496 RADIX_THREAD *rt;
499 || !TEST_ptr(rt = OPENSSL_zalloc(sizeof(*rt))))
502 rt->rp = rp;
505 if (!TEST_ptr(rt->m = ossl_crypto_mutex_new())) {
506 OPENSSL_free(rt);
511 if (!TEST_true(sk_RADIX_THREAD_push(rp->threads, rt))) {
512 OPENSSL_free(rt);
516 rt->thread_idx = rp->next_thread_idx++;
517 assert(rt->thread_idx + 1 == (size_t)sk_RADIX_THREAD_num(rp->threads));
518 return rt;
521 static void RADIX_THREAD_free(RADIX_THREAD *rt)
523 if (rt == NULL)
526 assert(rt->t == NULL);
527 BIO_free_all(rt->debug_bio);
528 OPENSSL_free(rt->tmp_buf);
529 ossl_crypto_mutex_free(&rt->m);
530 OPENSSL_free(rt);
533 static int RADIX_THREAD_join(RADIX_THREAD *rt)
537 if (rt->t != NULL)
538 ossl_crypto_thread_native_join(rt->t, &rv);
540 ossl_crypto_thread_native_clean(rt->t);
541 rt->t = NULL;
543 if (!TEST_true(rt->done))
564 static int radix_thread_init(RADIX_THREAD *rt)
566 if (!TEST_ptr(rt)
570 if (!TEST_true(CRYPTO_THREAD_set_local(&radix_thread, rt)))
573 set_override_bio_out(rt->debug_bio);
574 set_override_bio_err(rt->debug_bio);
580 RADIX_THREAD *rt = radix_get_thread();
582 if (!TEST_ptr(rt))
591 RADIX_THREAD *rt;
600 if (!TEST_ptr(rt = RADIX_THREAD_new(&radix_process)))
604 return radix_thread_init(rt);
631 #define RT() (radix_get_thread())
673 || !TEST_ptr(*p_ssl = RT()->ssl[idx]))
728 static int RADIX_THREAD_worker_run(RADIX_THREAD *rt)
733 cfg.debug_bio = rt->debug_bio;
737 if (!TERP_run(rt->child_script_info, &cfg))
748 RADIX_THREAD *rt = p;
750 if (!TEST_true(radix_thread_init(rt)))
753 /* Wait until thread-specific init is done (e.g. setting rt->t) */
754 ossl_crypto_mutex_lock(rt->m);
755 ossl_crypto_mutex_unlock(rt->m);
757 testresult = RADIX_THREAD_worker_run(rt);
759 ossl_crypto_mutex_lock(rt->m);
760 rt->testresult = testresult;
761 rt->done = 1;
762 ossl_crypto_mutex_unlock(rt->m);
781 radix_activate_obj(RT()->slot[idx]);
825 RADIX_THREAD *rt = RT();
834 rt->slot[i] = NULL;
835 rt->ssl[i] = NULL;