int main() { cl_event_wheel_t event_wheel; /* uint64_t key; */ /* init complib */ complib_init(); /* construct */ cl_event_wheel_construct(&event_wheel); /* init */ cl_event_wheel_init(&event_wheel); /* Start Playing */ cl_event_wheel_reg(&event_wheel, 1, /* key */ cl_get_time_stamp() + 3000000, /* 3 sec lifetime */ __test_event_aging, /* cb */ "The first Aging Event"); cl_event_wheel_reg(&event_wheel, 2, /* key */ cl_get_time_stamp() + 3000000, /* 3 sec lifetime */ __test_event_aging, /* cb */ "The Second Aging Event"); cl_event_wheel_reg(&event_wheel, 3, /* key */ cl_get_time_stamp() + 3500000, /* 3 sec lifetime */ __test_event_aging, /* cb */ "The Third Aging Event"); __cl_event_wheel_dump(&event_wheel); sleep(2); cl_event_wheel_reg(&event_wheel, 2, /* key */ cl_get_time_stamp() + 8000000, /* 3 sec lifetime */ __test_event_aging, /* cb */ "The Second Aging Event Moved"); __cl_event_wheel_dump(&event_wheel); sleep(1); /* remove the third event */ cl_event_wheel_unreg(&event_wheel, 3); /* key */ /* get the number of registrations for the keys */ printf("Event 1 Registered: %u\n", cl_event_wheel_num_regs(&event_wheel, 1)); printf("Event 2 Registered: %u\n", cl_event_wheel_num_regs(&event_wheel, 2)); sleep(5); /* destroy */ cl_event_wheel_destroy(&event_wheel); complib_exit(); return (0); }
/* * NAME * osmv_txn_set_timeout_ev * * DESCRIPTION * * SEE ALSO * */ ib_api_status_t osmv_txn_set_timeout_ev(IN osm_bind_handle_t h_bind, IN uint64_t key, IN uint64_t msec) { osmv_bind_obj_t *p_bo = (osmv_bind_obj_t *) h_bind; cl_event_wheel_t *p_event_wheel = p_bo->txn_mgr.p_event_wheel; cl_status_t status; status = cl_event_wheel_reg(p_event_wheel, key, cl_get_time_stamp() + 1000 * msec, /* TTL */ __osmv_txn_timeout_cb, p_bo /* The context */ ); return (ib_api_status_t) status; }