Back to sc_is_running() and sc_pause(). Previously we concluded the 
following:
* Drop the requirement that sc_is_running must return false in destructors
* Add an sc_core::sc_pause() that is similar to sc_stop but allows 
sc_start to be called again
* Have an implicit call to sc_pause on return from sc_start except when 
sc_stop has been called
* Simulation is only PAUSED on return from sc_start without sc_stop having 
been called
* When simulation is PAUSED, sc_start can be called again (even if paused 
due to event starvation)
* Add an sc_core::sc_get_status() that returns an enum indicating the 
RUNNING/PAUSE/STOPPED etcetera
I would propose sc_core::sc_get_status() returns the following
namespace sc_core
{
  enum sc_status { ...
 
ELABORATION                                     prior to the first call to 
sc_start or before_end_of_elaboration
BEFORE_END_OF_ELABORATION       within a callback of that name
END_OF_ELABORATION                      within a callback of that name
START_OF_SIMULATION                     within a callback of that name
RUNNING                                         from the evaluation or 
update phases of the scheduler
PAUSED                                          within sc_main after 
sc_pause has taken effect
STOPPED                                         within sc_main after 
sc_stop has taken effect 
END_OF_SIMULATION                       within a callback of that name 
(after sc_stop or, in the absence of sc_start, at the end of simulation)
 
if (sc_get_status() == RUNNING)
  sc_assert( sc_is_running() );
Some questions:
- Exactly when should sc_pause take effect?
- Is it influenced by sc_set_stop_mode = 
SC_STOP_FINISH_DELTA/SC_STOP_IMMEDIATE?
- or do we add an sc_set_pause_mode?
- or do we add a PAUSE argument to sc_stop instead of adding sc_pause?
- What should sc_is_running return when PAUSED? Tor and I were thinking 
<true>.
John A
-- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Fri May 14 08:07:47 2010
This archive was generated by hypermail 2.1.8 : Fri May 14 2010 - 08:07:48 PDT