The ualarm function causes the SIGALRM signal to be generated for the calling process after the number of real-time microseconds specified by useconds has elapsed. When the interval argument is nonzero, repeated timeout notification occurs with a period in microseconds specified by interval. If the notification signal SIGALRM is not intercepted or is ignored, the calling process is terminated. If you call a combination of ualarm and setitimer functions, and the AST status is disabled, the return value is invalid. If you call a combination of ualarm and setitimer functions, and the AST status is enabled, the return value is valid. This is because you cannot invoke an AST handler to clear the previous value of the timer when ASTs are disabled or invoked from a handler that was invoked at AST level. NOTE Interactions between ualarm and either alarm, or sleep are unspecified. See also setitimer.