cleaner implementation of keep_awake