[jaws@00:d0]$nut threads
Hndl Name Prio Sta QUE Timr StkP FreeMem
8C7F cdist 210 SLP 83F5 8ED1 8C17 1944 OK 8C7F
82A5 psmux 64 SLP 72F1 0000 8280 2011 OK 82A5
72B0 ConmgrI 64 SLP 71FA 465A 71CB 1819 OK 72B0
6A91 CON_BUF 64 SLP 5E93 0000 6A64 2003 OK 6A91
5DA1 PSYNC 64 SLP 0000 5DC0 5D65 452 OK
5AC7 psmux 64 SLP 4D33 0000 5AA2 2011 OK 5AC7
4D08 BTStack 64 SLP 0738 0000 4C2C 804 OK 4D08
4192 LogEvt 200 SLP 1F4C 0000 4060 718 OK 4192
2E2B LED 150 SLP 0000 29ED 2E06 987 OK
29CE main 150 RUN 2060 0000 28B0 482 OK 29CE 26AF
26AF idle 254 RDY 2060 0000 2693 356 OK 29CE 26AF
[jaws@00:d0]$nut timers
Addr Ticks Left Callback
29ED 0 4 NutThreadWake(2E2B)
465A 0 1420 NutEventTimeout(5E8A)
5DC0 0 4191 NutThreadWake(5DA1)
8ED1 0 30755 NutEventTimeout(83F5)
8EE7 0245810 01D5A(0000)
The last timer entry looks not well. I also taken the a cruisecontrol artifact from 2007-01-31 and the last from 2007-03-08. Needs some investigation...
Logged In: YES
user_id=749518
Originator: YES
The printout from above looks terrible, so I attach it as file...
File Added: nuttimers-bug.log
printout from 'nut threads' and 'nut timers'
Logged In: YES
user_id=749518
Originator: YES
From the given output I suspected the bug in cdist, after reviewing the code I discover that the timer is called in two callback sections and the timer will be not stopped before. I guess that problems are coming up if the last timer is not finished...
Logged In: YES
user_id=1055100
Originator: NO
I double checked the timers in the CDIST component.
There everything looks fine, i.e. timers are correctly stopped or started.
Details:
Timer is started both at the end of the _cdist_handle_info and the _cdist_handle_data functions...
At the beginning of the _cdist_handle_data function, the timer ist correctly stopped. When the last packet is received the timer is not started.