30 #ifndef SC_SIMCONTEXT_INT_H
31 #define SC_SIMCONTEXT_INT_H
46 # define DEBUG_NAME ""
47 # define DEBUG_MSG(NAME,P,MSG) \
49 if ( P && ( (strlen(NAME)==0) || !strcmp(NAME,P->name())) ) \
50 std::cout << "**** " << sc_time_stamp() << " (" \
51 << sc_get_current_process_name() << "): " << MSG \
52 << " - " << P->name() << std::endl; \
55 # define DEBUG_MSG(NAME,P,MSG)
59 #ifndef _SYSC_PRINT_VERBOSE_MESSAGE_ENV_VAR
60 #define _SYSC_PRINT_VERBOSE_MESSAGE_ENV_VAR "SYSC_PRINT_VERBOSE_MESSAGE"
79 result = active_p->
name();
81 result =
"** NONE **";
230 for(std::vector<sc_method_process*>::iterator method_iter =
231 method_h->m_contingent_methods.begin();
232 method_iter != method_h->m_contingent_methods.end();
235 (*method_iter)->dependent_methods.erase(method_h);
237 method_h->PWT_defining_proc = NULL;
246 for(std::vector<sc_method_process*>::iterator method_iter =
247 method_h->m_contingent_methods.begin();
248 method_iter != method_h->m_contingent_methods.end();
251 (*method_iter)->dependent_methods.erase(method_h);
253 method_h->PWT_defining_proc = NULL;
262 for(std::vector<sc_method_process*>::iterator method_iter =
263 thread_h->m_contingent_methods[thread_h->get_segment_id()].begin();
264 method_iter != thread_h->m_contingent_methods[thread_h->get_segment_id()].end();
267 (*method_iter)->dependent_threads.erase(thread_h);
269 thread_h->PWT_defining_proc = NULL;
278 for(std::vector<sc_method_process*>::iterator method_iter =
279 thread_h->m_contingent_methods[thread_h->get_segment_id()].begin();
280 method_iter != thread_h->m_contingent_methods[thread_h->get_segment_id()].end();
283 (*method_iter)->dependent_threads.erase(thread_h);
285 thread_h->PWT_defining_proc = NULL;
292 sc_simcontext::pop_runnable_method()
295 if( method_h == 0 ) {
305 sc_simcontext::pop_runnable_thread()
308 if( thread_h == 0 ) {
331 std::vector<sc_thread_handle>&
334 return m_active_invokers;
void push_back_thread(sc_thread_handle)
sc_thread_handle pop_thread()
void push_back_method(sc_method_handle)
void execute_method_next(sc_method_handle)
const char * name() const
class sc_method_process * sc_method_handle
sc_process_b * get_curr_proc() const
User initiated dynamic process support.
void remove_method(sc_method_handle)
void sc_defunct_process_function(sc_module *)
void push_front_thread(sc_thread_handle)
static sc_process_b * m_last_created_process_p
void push_front_method(sc_method_handle)
class sc_thread_process * sc_thread_handle
sc_method_handle pop_method()
void remove_thread(sc_thread_handle)
Base class for all structural entities.
void execute_thread_next(sc_thread_handle)
sc_simcontext * sc_get_curr_simcontext()
void set_curr_proc(sc_process_b *)
This function is not supported by the out-of-order simulation in the current release.
const char * sc_get_current_process_name()
std::vector< sc_thread_handle > & get_active_invokers()