aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2017-11-15 06:37:29 +0100
committerTristan Gingold <tgingold@free.fr>2017-11-15 06:37:29 +0100
commite973f74ed2b05170ad0ff4fbaca1998a2f70787c (patch)
tree0f1e5f04709a33c3d8e16c110bba0f786e579426 /src
parentc4a49156d90fed4b111ecb8c75d34669a006f9aa (diff)
downloadghdl-e973f74ed2b05170ad0ff4fbaca1998a2f70787c.tar.gz
ghdl-e973f74ed2b05170ad0ff4fbaca1998a2f70787c.tar.bz2
ghdl-e973f74ed2b05170ad0ff4fbaca1998a2f70787c.zip
grt-signals: fix thinko in delayed_implicit_process.
Fix #458
Diffstat (limited to 'src')
-rw-r--r--src/grt/grt-signals.adb8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/grt/grt-signals.adb b/src/grt/grt-signals.adb
index a681e1360..976bad67b 100644
--- a/src/grt/grt-signals.adb
+++ b/src/grt/grt-signals.adb
@@ -647,7 +647,8 @@ package body Grt.Signals is
-- AFTER > 0.
-- Put SIGN on the future list.
if Sign.Flink = null then
- Sign.Flink := Grt.Threads.Atomic_Insert (Future_List'access, Sign);
+ Sign.Flink := Future_List;
+ Future_List := Sign;
end if;
end if;
@@ -2892,7 +2893,6 @@ package body Grt.Signals is
Ntime : Std_Time;
Trans : Transaction_Acc;
Last : Transaction_Acc;
- Prev : Transaction_Acc;
Val : Value_Union;
begin
if Pfx.Event then
@@ -2906,9 +2906,7 @@ package body Grt.Signals is
-- Find the last transaction.
Last := Sig.S.Attr_Trans;
- Prev := Last;
while Last.Next /= null loop
- Prev := Last;
Last := Last.Next;
end loop;
@@ -2929,7 +2927,7 @@ package body Grt.Signals is
Val => Val);
-- Append the transaction.
- Prev.Next := Trans;
+ Last.Next := Trans;
end if;
if Sig.S.Time = 0 then