1/* 2 * Copyright 2018 Google, Inc. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions are 6 * met: redistributions of source code must retain the above copyright 7 * notice, this list of conditions and the following disclaimer; 8 * redistributions in binary form must reproduce the above copyright --- 314 unchanged lines hidden (view full) --- 323 status(StatusOther); 324} 325 326void 327Scheduler::runUpdate() 328{ 329 status(StatusUpdate); 330 |
331 try { 332 Channel *channel = updateList.getNext(); 333 while (channel) { 334 channel->popListNode(); 335 channel->update(); 336 channel = updateList.getNext(); 337 } 338 } catch (...) { 339 throwToScMain(); |
340 } 341} 342 343void 344Scheduler::runDelta() 345{ 346 status(StatusDelta); |
347 348 try { 349 while (!deltas.empty()) 350 deltas.front()->run(); 351 } catch (...) { 352 throwToScMain(); 353 } |
354} 355 356void 357Scheduler::pause() 358{ 359 status(StatusPaused); 360 kernel->status(::sc_core::SC_PAUSED); 361 runOnce = false; --- 73 unchanged lines hidden (view full) --- 435} 436 437void 438Scheduler::throwToScMain(const ::sc_core::sc_report *r) 439{ 440 if (!r) 441 r = reportifyException(); 442 _throwToScMain = r; |
443 status(StatusOther); |
444 scMain->run(); 445} 446 447void 448Scheduler::scheduleStop(bool finish_delta) 449{ 450 if (stopEvent.scheduled()) 451 return; --- 55 unchanged lines hidden --- |