scheduler.hh (13186:1ebc6c729311) | scheduler.hh (13188:7af408b60cac) |
---|---|
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 --- 443 unchanged lines hidden (view full) --- 452 453extern Scheduler scheduler; 454 455inline void 456Scheduler::TimeSlot::process() 457{ 458 scheduler.status(StatusTiming); 459 | 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 --- 443 unchanged lines hidden (view full) --- 452 453extern Scheduler scheduler; 454 455inline void 456Scheduler::TimeSlot::process() 457{ 458 scheduler.status(StatusTiming); 459 |
460 while (!events.empty()) 461 events.front()->run(); | 460 try { 461 while (!events.empty()) 462 events.front()->run(); 463 } catch (...) { 464 if (events.empty()) 465 scheduler.completeTimeSlot(this); 466 else 467 scheduler.schedule(this); 468 scheduler.throwToScMain(); 469 } |
462 463 scheduler.status(StatusOther); 464 scheduler.completeTimeSlot(this); 465} 466 467const ::sc_core::sc_report *reportifyException(); 468 469} // namespace sc_gem5 470 471#endif // __SYSTEMC_CORE_SCHEDULER_H__ | 470 471 scheduler.status(StatusOther); 472 scheduler.completeTimeSlot(this); 473} 474 475const ::sc_core::sc_report *reportifyException(); 476 477} // namespace sc_gem5 478 479#endif // __SYSTEMC_CORE_SCHEDULER_H__ |