Home | History | Annotate | Download | only in radix

Lines Matching defs:RP

84     RADIX_PROCESS *rp;
148 static int RADIX_PROCESS_init(RADIX_PROCESS *rp, size_t node_idx, size_t process_idx)
153 if (!TEST_ptr(rp->gm = ossl_crypto_mutex_new()))
157 if (!TEST_ptr(rp->objs = lh_RADIX_OBJ_new(RADIX_OBJ_hash, RADIX_OBJ_cmp)))
160 if (!TEST_ptr(rp->threads = sk_RADIX_THREAD_new(NULL)))
163 rp->keylog_out = NULL;
166 && !TEST_ptr(rp->keylog_out = BIO_new_file(keylog_path, "a")))
169 rp->node_idx = node_idx;
170 rp->process_idx = process_idx;
171 rp->done_join_all_threads = 0;
172 rp->next_thread_idx = 0;
176 lh_RADIX_OBJ_free(rp->objs);
177 rp->objs = NULL;
178 ossl_crypto_mutex_free(&rp->gm);
311 static void RADIX_PROCESS_report_state(RADIX_PROCESS *rp, BIO *bio,
315 rp->node_idx, rp->process_idx);
318 rp->next_thread_idx);
320 (unsigned long long)ossl_time2ms(rp->time_slip));
323 lh_RADIX_OBJ_doall_arg(rp->objs, report_obj, bio);
326 RADIX_THREAD_report_state(sk_RADIX_THREAD_value(rp->threads, 0),
333 static void RADIX_PROCESS_report_thread_results(RADIX_PROCESS *rp, BIO *bio)
342 for (i = 1; i < (size_t)sk_RADIX_THREAD_num(rp->threads); ++i) {
343 rt = sk_RADIX_THREAD_value(rp->threads, i);
353 rp->node_idx, rp->process_idx, rt->thread_idx, rt->thread_idx);
374 static int RADIX_PROCESS_join_all_threads(RADIX_PROCESS *rp, int *testresult)
381 if (rp->done_join_all_threads) {
382 *testresult = rp->thread_composite_testresult;
386 for (i = 1; i < (size_t)sk_RADIX_THREAD_num(rp->threads); ++i) {
387 rt = sk_RADIX_THREAD_value(rp->threads, i);
398 rp->thread_composite_testresult = composite_testresult;
400 rp->done_join_all_threads = 1;
402 RADIX_PROCESS_report_thread_results(rp, bio_err);
414 static void RADIX_PROCESS_cleanup(RADIX_PROCESS *rp)
418 assert(rp->done_join_all_threads);
420 for (i = 0; i < (size_t)sk_RADIX_THREAD_num(rp->threads); ++i)
421 RADIX_THREAD_free(sk_RADIX_THREAD_value(rp->threads, i));
423 sk_RADIX_THREAD_free(rp->threads);
424 rp->threads = NULL;
426 lh_RADIX_OBJ_doall(rp->objs, cleanup_one);
427 lh_RADIX_OBJ_free(rp->objs);
428 rp->objs = NULL;
430 BIO_free_all(rp->keylog_out);
431 rp->keylog_out = NULL;
432 ossl_crypto_mutex_free(&rp->gm);
435 static RADIX_OBJ *RADIX_PROCESS_get_obj(RADIX_PROCESS *rp, const char *name)
440 return lh_RADIX_OBJ_retrieve(rp->objs, &key);
443 static int RADIX_PROCESS_set_obj(RADIX_PROCESS *rp,
451 existing = RADIX_PROCESS_get_obj(rp, name);
456 lh_RADIX_OBJ_delete(rp->objs, existing);
462 lh_RADIX_OBJ_insert(rp->objs, obj);
469 static int RADIX_PROCESS_set_ssl(RADIX_PROCESS *rp, const char *name, SSL *ssl)
476 if (!TEST_true(RADIX_PROCESS_set_obj(rp, name, obj))) {
484 static SSL *RADIX_PROCESS_get_ssl(RADIX_PROCESS *rp, const char *name)
486 RADIX_OBJ *obj = RADIX_PROCESS_get_obj(rp, name);
494 static RADIX_THREAD *RADIX_THREAD_new(RADIX_PROCESS *rp)
498 if (!TEST_ptr(rp)
502 rt->rp = rp;
511 if (!TEST_true(sk_RADIX_THREAD_push(rp->threads, rt))) {
516 rt->thread_idx = rp->next_thread_idx++;
517 assert(rt->thread_idx + 1 == (size_t)sk_RADIX_THREAD_num(rp->threads));
630 #define RP() (&radix_process)
637 ossl_crypto_mutex_lock(RP()->gm);
638 time_slip = RP()->time_slip;
639 ossl_crypto_mutex_unlock(RP()->gm);
646 ossl_crypto_mutex_lock(RP()->gm);
647 RP()->time_slip = ossl_time_add(RP()->time_slip, t);
648 ossl_crypto_mutex_unlock(RP()->gm);
659 lh_RADIX_OBJ_doall(RP()->objs, per_op_tick_obj);
828 ossl_crypto_mutex_lock(RP()->gm);
830 lh_RADIX_OBJ_doall(RP()->objs, cleanup_one);
831 lh_RADIX_OBJ_flush(RP()->objs);
838 ossl_crypto_mutex_unlock(RP()->gm);