make the update interval a double to allow values < 1
should ignore return value of usleep()