summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-11-14 12:11:24 -0500
committerJonathan Bradley <jcb@pikum.xyz>2025-11-14 12:11:24 -0500
commit58cba3aa2440f13c2874422842cd19aa55238e92 (patch)
tree4949a22e7ea4b872b4f17719a86fd46f6ea2ab4d
parent1341066bbbf2e8bd29d0521f94953817f935b0fe (diff)
pk.h: update to 0.9.7
-rw-r--r--src/pk.h28
1 files changed, 11 insertions, 17 deletions
diff --git a/src/pk.h b/src/pk.h
index 1709de5..eab86eb 100644
--- a/src/pk.h
+++ b/src/pk.h
@@ -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");