In reply to svq:
t_name and time_t are both static variables, and this is a race condition. When executing
#(delay), the delay expression gets evaluated first, then the process gets suspended for the delay value amount of time. If the operands of the delay expression later change while the process is suspended, the expression does not get re-evaluated.
Technically it’s possible for one of the task to get called in one process and then immediately switch to another process that calls the same task again and overwrites the arguments. But usually a process runs uninterrupted until hitting a blocking statement.