aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--translate/grt/grt-processes.adb5
1 files changed, 5 insertions, 0 deletions
diff --git a/translate/grt/grt-processes.adb b/translate/grt/grt-processes.adb
index de76174da..650c0f005 100644
--- a/translate/grt/grt-processes.adb
+++ b/translate/grt/grt-processes.adb
@@ -298,6 +298,8 @@ package body Grt.Processes is
-- Cur_Proc.Timeout := Std_Time'Last;
-- end if;
Stack_Switch (Get_Main_Stack, Proc.Stack);
+ -- Note: in case of timeout, the timeout is removed when processis is
+ -- woken up.
return Proc.State = State_Timeout;
end Ghdl_Process_Wait_Suspend;
@@ -307,6 +309,7 @@ package body Grt.Processes is
El : Sensitivity_Acc;
N_El : Sensitivity_Acc;
begin
+ -- Remove the sensitivity.
El := Proc.Sensitivity;
Proc.Sensitivity := null;
while El /= null loop
@@ -314,6 +317,8 @@ package body Grt.Processes is
Free (El);
El := N_El;
end loop;
+ -- Remove the timeout.
+ Proc.Timeout := Bad_Time;
end Ghdl_Process_Wait_Close;
procedure Ghdl_Process_Wait_Exit