From 7d26515bc45ec0925f0daf71e4a2ba563abca576 Mon Sep 17 00:00:00 2001 From: Cary R Date: Tue, 14 May 2013 16:54:10 -0700 Subject: [PATCH] A $finish in a final block should end processing of all final blocks --- vvp/schedule.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/vvp/schedule.cc b/vvp/schedule.cc index 2bbe8d764..87c3f8a4a 100644 --- a/vvp/schedule.cc +++ b/vvp/schedule.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001-2011 Stephen Williams (steve@icarus.com) + * Copyright (c) 2001-2013 Stephen Williams (steve@icarus.com) * * This source code is free software; you can redistribute it * and/or modify it in source code form under the terms of the GNU @@ -1126,7 +1126,8 @@ void schedule_simulate(void) } // Execute final events. - while (schedule_final_list) { + schedule_runnable = true; + while (schedule_runnable && schedule_final_list) { struct event_s*cur = schedule_final_list->next; if (cur->next == cur) { schedule_final_list = 0;