Commit graph

3 commits

Author SHA1 Message Date
Kevin Tang
33e5fd9015 loc timer util fix to handle the race condition
loc timer util stop() routine may have race condition
with the timer thread, when timer expires at the same
time stop() routine tries to lock mutex.  The race
condition can go 2 ways:
* timer thread expires, unlocks mutex, context switch,
stop() thread acquires lock, context switch, timer
thread destroys mutex.  Destroy will fail, resulting
mutex leak.
* timer thread expires, unlocks mutex, destroys mutex,
stop() acqures lock, signal, and releases lock. Would
be super rare conditions though.

Fix is that we give 5 seconds for stop() thread to
give up the lock when destroy. After that the timer
thread will release the mutex and go on destroy.
Meanwhile the stop() thread would check the lock
return to move on with signal and unlock.

Change-Id: Iff9e34d08a1faf0828049de2fede2e7a5d15b161
CRs-Fixed: 699856
2014-08-04 10:28:00 -07:00
Kevin Tang
0eeb1392f1 added timer stop api
loc_timer util currently can not be stopped.  Added stop api so that
clients can make use of.

CRs-Fixed: 579624

Change-Id: I17f80e46ecfbdf1b70eb158f1ee7eb1a92d5e765
2013-11-26 12:07:02 -08:00
Tushar Janefalkar
7af44a9436 Timed Alarm service utility
The utility launches a separate
thread that holds a mutex for
x milisecs and then calls a callback
function to notify the caller about
the time lapse

Change-Id: If033eed71d28a8736c8393f6ff609ac59d8877d9
2013-06-17 10:36:57 -07:00