Commit Graph

78 Commits

Author SHA1 Message Date
Grissiom d59aa279c3 kernel: use skip list to implement timer list
Skip list is a "random" data structure that in high possibilities it
would get O(log(N)) time complexity in inserting while the old list get
O(N). Forthermore, when set RT_TIMER_SKIP_LIST_LEVEL to 1, it will just
the same as the old double linked list, both in time and space
complexity.

Benchmarks shows that when RT_TIMER_SKIP_LIST_LEVEL is 3, the average
time of random insertion of new timer is about 2 times faster than the
old timer when there are 100 timers and 3 times faster when there are
200 timers.

However, it restores the deprecated funcion rt_system_timer_init. BSPs
must invoke it upon system startup.
2013-10-12 22:48:29 +08:00
Bernard Xiong 79392bb082 Embedded GPLv2 license. 2013-06-24 17:06:09 +08:00
Grissiom 0001344105 more deterministic on timer
If two timer will timeout at the same tick, the one started later will
be called later. I've tested the patch on simulator and it _seems_ OK.

Reported-by: xdzy on the forum and delin17 <delin17@qq.com>
2013-01-17 16:13:01 +08:00
dzzxzz@gmail.com eef72f68de fixed the coding style
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2493 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-18 08:34:46 +00:00
bernard.xiong@gmail.com ea4082b791 fix the next timeout issue in soft timer
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2484 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-15 02:17:17 +00:00
bernard.xiong@gmail.com 15b3271d5d Fixed timer control issue.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2323 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-10-08 06:07:52 +00:00
qiuyiuestc@gmail.com a73abdccf5 split export symbols from rtm.c to each file
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2263 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-08-27 01:21:57 +00:00
dzzxzz@gmail.com 907bb8c7fd unify coding style in timer.c
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2149 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-06-02 08:40:29 +00:00
bernard.xiong@gmail.com d82a8cce21 fixed module unload issue; code cleanup for timer.c
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2119 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-05-16 06:18:58 +00:00
bernard.xiong@gmail.com b14044212b remove soft timer tick increase
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2108 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-05-05 01:45:17 +00:00
bernard.xiong@gmail.com 8061067343 cleanup code comments and deprecate rt_system_timer_init function.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2045 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-04-14 03:51:34 +00:00
bernard.xiong@gmail.com 0f519b6721 move src\kservice.h to include\rtservice.h.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2005 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-03-22 06:11:44 +00:00
dzzxzz 12b5e56f46 unify the coding style of kernel
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1998 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-03-17 06:43:49 +00:00
dzzxzz c0f80bdf9a cleanup kernel code
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1715 bbd45198-f89e-11dd-88c7-29a3b14d5316
2011-09-21 03:56:42 +00:00
bernard.xiong@gmail.com ee68988518 change the RT_DEBUG_NOT_REENT to RT_DEBUG_NOT_IN_INTERRUPT.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1503 bbd45198-f89e-11dd-88c7-29a3b14d5316
2011-06-14 23:59:42 +00:00
mbbill@gmail.com 864bd11802 Add reentrance check. Put kernel debug switch together.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1494 bbd45198-f89e-11dd-88c7-29a3b14d5316
2011-06-12 10:01:48 +00:00
bernard.xiong@gmail.com fbe81f8c4c add IAR compiler version check in weak; add rt_malloc_page/rt_free_page for application module; fix the software timer thread stack issue.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1183 bbd45198-f89e-11dd-88c7-29a3b14d5316
2010-12-08 23:17:23 +00:00
bernard.xiong@gmail.com 7a80d831c9 update doxygen comments.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1132 bbd45198-f89e-11dd-88c7-29a3b14d5316
2010-11-29 00:04:55 +00:00
bernard.xiong@gmail.com 5597823b83 apply new tick overflow patch from Charlie
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1117 bbd45198-f89e-11dd-88c7-29a3b14d5316
2010-11-25 23:44:58 +00:00
bernard.xiong@gmail.com 0eaf2098b8 fix the timer check bug.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@730 bbd45198-f89e-11dd-88c7-29a3b14d5316
2010-05-22 23:26:08 +00:00
bernard.xiong 23ea4f1b74 add __ICCM16C__ compiler support.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@621 bbd45198-f89e-11dd-88c7-29a3b14d5316
2010-04-14 00:40:20 +00:00
bernard.xiong 51e2d91378 add license and copyright info
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@226 bbd45198-f89e-11dd-88c7-29a3b14d5316
2009-12-25 12:18:53 +00:00
bernard.xiong 8f90e129d3 clean up software timer code.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@222 bbd45198-f89e-11dd-88c7-29a3b14d5316
2009-12-24 00:03:57 +00:00
lijin.unix 10a46e477b changed soft timer thread resume mode.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@220 bbd45198-f89e-11dd-88c7-29a3b14d5316
2009-12-23 15:15:05 +00:00
bernard.xiong 1133895d2c remove the software timer check in tick handle.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@219 bbd45198-f89e-11dd-88c7-29a3b14d5316
2009-12-23 13:52:42 +00:00
lijin.unix 8c8aa4418b add soft timer.other's platform maybe compiled err,pls add some macro definition in rtconfig.h. ( RT_TIMER_THREAD_STACK_SIZE RT_TIMER_THREAD_PRIO RT_TIMER_EX_TICKS_PER_SEC)
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@215 bbd45198-f89e-11dd-88c7-29a3b14d5316
2009-12-22 15:06:27 +00:00
bernard.xiong 39ff757705 fix timer re-start issue if stop a timer in itself timeout_func.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@107 bbd45198-f89e-11dd-88c7-29a3b14d5316
2009-10-19 12:11:17 +00:00
bernard.xiong bda4730a94 import RT-Thread RTOS 0.3.x to Google SVN
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2 bbd45198-f89e-11dd-88c7-29a3b14d5316
2009-07-02 22:48:23 +00:00