summaryrefslogtreecommitdiff
path: root/translate
diff options
context:
space:
mode:
authorgingold2008-07-22 01:27:07 +0000
committergingold2008-07-22 01:27:07 +0000
commit1ab385604669206c3874218ae1471d66561a54c8 (patch)
tree3aa08c34367e6f1cb3edf08a3df0ce9c177ab9bc /translate
parent205582d0c16c41843976dd9bff9cf9a8ea0557df (diff)
downloadghdl-1ab385604669206c3874218ae1471d66561a54c8.tar.gz
ghdl-1ab385604669206c3874218ae1471d66561a54c8.tar.bz2
ghdl-1ab385604669206c3874218ae1471d66561a54c8.zip
Remove timeout at the end of a wait statement.
Diffstat (limited to 'translate')
-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 de76174..650c0f0 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