Hi Tristan,
sorry I'm a bit late with this... but...
you're too clever for your own good :) The fix you checked in is subtly
wrong. In line 308, you're zapping Proc.Timeout_Chain_Prev, but in line
314/315, you need the old value.
I've added a patch below to fix the fix :)
Thanks, Tom
--- gcc/vhdl/grt/grt-processes.adb.orig 2009-12-30 02:51:24.000000000 +0100
+++ gcc/vhdl/grt/grt-processes.adb 2009-12-30 02:52:27.000000000 +0100
@@ -304,8 +304,6 @@
if Proc.Timeout_Chain_Prev /= null then
Proc.Timeout_Chain_Prev.Timeout_Chain_Next :=
Proc.Timeout_Chain_Next;
- -- Be sure a second call won't corrupt the chain.
- Proc.Timeout_Chain_Prev := null;
elsif Process_Timeout_Chain = Proc then
-- Only if Proc is in the chain.
Process_Timeout_Chain := Proc.Timeout_Chain_Next;
@@ -315,6 +313,8 @@
Proc.Timeout_Chain_Prev;
Proc.Timeout_Chain_Next := null;
end if;
+ -- Be sure a second call won't corrupt the chain.
+ Proc.Timeout_Chain_Prev := null;
end Remove_Process_From_Timeout_Chain;
procedure Ghdl_Process_Wait_Set_Timeout (Time : Std_Time)
_______________________________________________
Ghdl-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/ghdl-discuss