diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-11-14 12:11:24 -0500 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-11-14 12:11:24 -0500 |
| commit | 58cba3aa2440f13c2874422842cd19aa55238e92 (patch) | |
| tree | 4949a22e7ea4b872b4f17719a86fd46f6ea2ab4d | |
| parent | 1341066bbbf2e8bd29d0521f94953817f935b0fe (diff) | |
pk.h: update to 0.9.7
| -rw-r--r-- | src/pk.h | 28 |
1 files changed, 11 insertions, 17 deletions
@@ -1,7 +1,7 @@ #ifndef PK_SINGLE_HEADER_FILE_H #define PK_SINGLE_HEADER_FILE_H /******************************************************************************* -* PK Single-Header-Library V0.9.6 +* PK Single-Header-Library V0.9.7 * * Author: Jonathan Bradley * Copyright: © 2024-2025 Jonathan Bradley @@ -303,7 +303,7 @@ * *******************************************************************************/ -#define PK_VERSION "0.9.6" +#define PK_VERSION "0.9.7" #ifdef PK_IMPL_ALL # ifndef PK_IMPL_MEM_TYPES @@ -1790,7 +1790,6 @@ pk_ev_register_ev(pk_ev_mgr_id_T evmgr, void *user_ev_data) uint64_t new_size; uint64_t i, ii, flg; pk_ev_id_T id; - bool found = false; struct pk_ev_mgr *mgr = nullptr; mtx_lock(&pk_ev_mstr.mtxs[evmgr]); mgr = pk_ev_mstr.mgrs[evmgr]; @@ -1808,26 +1807,21 @@ pk_ev_register_ev(pk_ev_mgr_id_T evmgr, void *user_ev_data) pk_ev_mstr.mgrs[evmgr] = mgr; } id = atomic_load(&mgr->left_evs); + flg = atomic_load(&mgr->unused_evs); if (mgr->left_evs != mgr->right_evs) { - i = atomic_load(&mgr->left_evs); + i = atomic_load(&mgr->left_evs) + 1; ii = atomic_load(&mgr->rn_ev); - flg = atomic_load(&mgr->unused_evs); - for (; i < ii; ++i) { + for (; i <= ii; ++i) { if (flg & (1lu << i)) { - if (!found) { - found = true; - flg &= ~(1lu << i); - continue; - } break; } } atomic_store(&mgr->left_evs, i); - atomic_store(&mgr->unused_evs, flg); } else { atomic_store(&mgr->left_evs, atomic_load(&mgr->left_evs) + 1); atomic_store(&mgr->right_evs, atomic_load(&mgr->right_evs) + 1); } + atomic_store(&mgr->unused_evs, flg & ~(1lu << id)); mtx_unlock(&pk_ev_mstr.mtxs[evmgr]); mgr->ev[id].user_ev_data = user_ev_data; return id; @@ -3782,18 +3776,18 @@ inline bool flt_equal(T a, T b, T epsilon) { } \ } #define PK_TEST_ASSERT_LTE(expected, value) { \ - if ((value) >= (expected)) { \ + if ((value) <= (expected)) { \ PK_TEST_ASSERT_BODY(expected, value, <=) \ } \ } #define PK_TEST_ASSERT_LTE_RET(expected, value) { \ - if ((value) >= (expected)) { \ + if ((value) <= (expected)) { \ PK_TEST_ASSERT_BODY(expected, value, <=) \ return -1; \ } \ } #define PK_TEST_ASSERT_LTE_EXIT(expected, value) { \ - if ((value) >= (expected)) { \ + if ((value) <= (expected)) { \ PK_TEST_ASSERT_BODY(expected, value, <=) \ exit(1); \ } \ @@ -3807,8 +3801,8 @@ void pk_test_run_test_groups(pk_test_group_get **group_get_fns, unsigned long n_ unsigned long i; unsigned int k, pass_count, total_test_count, total_test_pass_count, test_group_count, test_group_pass_count; double elapsed_ms, group_ms, total_ms; - pk_tmr func_tmr, total_tmr; - pk_test_group *group; + struct pk_tmr func_tmr, total_tmr; + struct pk_test_group *group; fprintf(stdout, "\r\n"); fprintf(stdout, "[pk-test] Begin..\n"); |
