an external timeout mechanism based on processes and signals