diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-11-06 22:09:08 -0500 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-11-06 22:13:33 -0500 |
| commit | 2ce86d2c4cd2e392d5d0f5d21767776ef524246f (patch) | |
| tree | c4921a8ee5a11638d3408c36af9a29a3569f86ea | |
| parent | 6065c56165743116bf9d4a5a4a1a63ec6d01a067 (diff) | |
pkev: define for hard limits
| -rw-r--r-- | pkev.h | 14 |
1 files changed, 10 insertions, 4 deletions
@@ -60,6 +60,12 @@ void pk_ev_unregister_cb(pk_ev_mgr_id_T evmgr, pk_ev_id_T evid, pk_ev_cb_id_T cb # define PK_EV_GROW_RATIO 1.5 #endif +// hard limits +// PK_EV_MAX_EV_COUNT would require a refactor for keeping track of used slots +#define PK_EV_MAX_EV_COUNT 64 +// PK_EV_MAX_CB_COUNT could be increased as desired +#define PK_EV_MAX_CB_COUNT 255 + #ifndef PK_EV_MEM_ALLOC # define PK_EV_MEM_ALLOC(sz, alignment, bkt) pk_new(sz, alignment, bkt) #endif @@ -298,7 +304,7 @@ pk_ev_register_ev(pk_ev_mgr_id_T evmgr, void *user_ev_data) mtx_lock(&pk_ev_mstr.mtxs[evmgr]); mgr = pk_ev_mstr.mgrs[evmgr]; if (mgr->left_evs == mgr->right_evs && mgr->right_evs == mgr->rn_ev) { - new_size = PK_MAX(2, PK_MIN(255, mgr->rn_ev * PK_EV_GROW_RATIO)); + new_size = PK_MAX(2, PK_MIN(PK_EV_MAX_EV_COUNT, mgr->rn_ev * PK_EV_GROW_RATIO)); if (new_size == mgr->rn_ev) { PK_LOG_ERR("[pkev.h] need more room, but failed to grow ev count.\n"); mtx_unlock(&pk_ev_mstr.mtxs[evmgr]); @@ -339,7 +345,7 @@ pk_ev_register_ev(pk_ev_mgr_id_T evmgr, void *user_ev_data) pk_ev_cb_id_T pk_ev_register_cb(pk_ev_mgr_id_T evmgr, pk_ev_id_T evid, pk_ev_cb_fn *cb, void *user_cb_data) { - assert(evmgr < 64); + assert(evmgr < PK_EV_INIT_MGR_COUNT); bool found = false; uint64_t new_size, i; struct pk_ev_mgr *mgr = nullptr; @@ -364,7 +370,7 @@ pk_ev_register_cb(pk_ev_mgr_id_T evmgr, pk_ev_id_T evid, pk_ev_cb_fn *cb, void * mtx_lock(&pk_ev_mstr.mtxs[evmgr]); if (pk_ev_mstr.mgrs[evmgr]->ev[evid].right_ev_cbs == pk_ev_mstr.mgrs[evmgr]->rn_cb) { size_t old_sz = pk_ev_inner_calc_sz(pk_ev_mstr.mgrs[evmgr]->rn_ev, pk_ev_mstr.mgrs[evmgr]->rn_cb, NULL, NULL); - new_size = PK_MAX(2, PK_MIN(255, pk_ev_mstr.mgrs[evmgr]->rn_cb * PK_EV_GROW_RATIO)); + new_size = PK_MAX(2, PK_MIN(PK_EV_MAX_CB_COUNT, pk_ev_mstr.mgrs[evmgr]->rn_cb * PK_EV_GROW_RATIO)); if (new_size == pk_ev_mstr.mgrs[evmgr]->rn_cb) { PK_LOG_ERR("[pkev.h] need more room, but failed to grow cb count.\n"); mtx_unlock(&pk_ev_mstr.mtxs[evmgr]); @@ -390,7 +396,7 @@ pk_ev_register_cb(pk_ev_mgr_id_T evmgr, pk_ev_id_T evid, pk_ev_cb_fn *cb, void * void pk_ev_emit(pk_ev_mgr_id_T evmgr, pk_ev_id_T evid, void *user_emit_data) { - assert(evmgr < 64); + assert(evmgr < PK_EV_INIT_MGR_COUNT); uint8_t i; for (i = 0; i < pk_ev_mstr.mgrs[evmgr]->ev[evid].right_ev_cbs; ++i) { if (pk_ev_mstr.mgrs[evmgr] == nullptr) continue; |
