This sounds like a job for timeout(); just put a lockout in front of the driver access routines that prevent them from doing things while the timer is ticking (probably block), and make the lockout go away after timeout calls the callback routine after 0.5 seconds. Erik <fair@clock.org>