aboutsummaryrefslogtreecommitdiffstats
path: root/src/timer.c
AgeCommit message (Collapse)AuthorFilesLines
2014-05-23timer: Use the now parameter when it is not NULLHolger Hans Peter Freyther1-3/+3
The code would have used an uninitialized current_time in case "now" was not NULL. As now is const and timersub expects a non const parameter I decided to copy now into current_time. Fixes: CID #1040661
2013-02-15misc: Doxygen tweaks: fixed some typos and minor errorsKaterina Barone-Adesi1-1/+1
Doxygen generates quite a lot of warnings on libosmocore. Some of them are obvious typos - this patch aims to fix such low-hanging fruit.
2013-01-11add some missing doxygen annotation for libosmocore functionsHarald Welte1-7/+5
2012-07-13timer: Add function osmo_timer_remaining() to determine remainign timeHarald Welte1-0/+28
2012-04-18doc: Fix the Doxygen section endingsSylvain Munaut1-1/+1
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-11-13timer: Better fix to the timer re-scheduling situationPablo Neira Ayuso1-6/+3
As it turns out, the previous fix didn't cover the case of a timer X being re-scheduled inside a timer call back expiring at the same time as the previous X instance. Written-by: Pablo Neira Ayuso <pablo@gnumonks.org> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-11-12core/timer: Allow an already scheduled timer to be re-scheduled at a new timeSylvain Munaut1-2/+6
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-10-21timer: Add compatibility header with timer helpersSylvain Munaut1-0/+1
Some of these are not always present, especially when cross compiling Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-10-18timer: Simplify osmo_timers_nearest even moreSylvain Munaut1-4/+4
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-10-17timer: Fix implementation of osmo_timers_nearest causing high CPU loadSylvain Munaut1-4/+2
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-10-17timer: add scalable RB-tree based timer infrastructurePablo Neira Ayuso1-81/+95
This patch adds RB-tree based timers which scales better than the previous list-based implementation. It does not require any API changes. It breaks ABI because the osmo_timer_list structure has changed though (to avoid this in the future, we can put internal data in some private structure). The following table summarizes the worst-case computational complexity of this new implementation versus the previous one: rb-tree list-based ------- ---------- calculate next timer to expire O(1) O(n) insertion of new timer O(log n) O(n) deletion of timer O(log n) O(1) timer-fired scheduler O(log n) O(3n) The most repeated cases are: * the calculation of the next timer to expire, that happens in every loop of our select function. * the timer-fired scheduler execution. This new implementation only loses in the deletion of timer scenario, this happens because we may need to rebalance the tree after the removal. So I think there is some real gain if we have some situation in which we have to handle lots of timers.
2011-08-17some more doxygen work (include the notion of modules)Harald Welte1-0/+36
2011-07-16timer: use (void) for functions that take no argumentsHarald Welte1-3/+3
This has been detected by http://smatch.sourceforge.net/
2011-05-07timer: use namespace prefix osmo_timer*Pablo Neira Ayuso1-14/+15
Summary of changes: s/struct timer_list/struct osmo_timer_list/g s/bsc_add_timer/osmo_timer_add/g s/bsc_schedule_timer/osmo_timer_schedule/g s/bsc_del_timer/osmo_timer_del/g s/bsc_timer_pending/osmo_timer_pending/g s/bsc_nearest_timer/osmo_timers_nearest/g s/bsc_prepare_timers/osmo_timers_prepare/g s/bsc_update_timers/osmo_timers_update/g s/bsc_timer_check/osmo_timers_check/g
2011-03-23include: reorganize headers file to include/osmocom/[gsm|core]0.2.0Pablo Neira Ayuso1-1/+1
This patch moves all GSM-specific definitions to include/osmocom/gsm. Moreover, the headers in include/osmocore/ have been moved to include/osmocom/core. This has been proposed by Harald Welte and Sylvain Munaunt. Tested with `make distcheck'. Signed-off-by: Pablo Neira Ayuso <pablo@gnumonks.org>
2010-02-20intial checkin of the libosmocore projectHarald Welte1-0/+185