threading: don't consume excessive CPU resources