What is wrong with using "nice" to lower the priority of the long-running process? That way the process gets to use all of the CPU when there is nothing else running but doesn't slow down normal processes. The operating system handles the scheduling efficiently. No polling, busy loops, or extra signals required.