sc_process_handle sc_get_current_process_handle() { return ( sc_is_running() ) ? sc_process_handle(sc_get_current_process_b()) : sc_get_last_created_process_handle(); }
sc_process_handle sc_simcontext::create_cthread_process( const char* name_p, bool free_host, SC_ENTRY_FUNC method_p, sc_process_host* host_p, const sc_spawn_options* opt_p ) { sc_cthread_handle handle = new sc_cthread_process(name_p, free_host, method_p, host_p, opt_p); if ( m_ready_to_simulate ) { handle->prepare_for_simulation(); } else { m_process_table->push_front( handle ); } return sc_process_handle(handle); }
sc_process_handle sc_simcontext::create_method_process( const char* name_p, bool free_host, SC_ENTRY_FUNC method_p, sc_process_host* host_p, const sc_spawn_options* opt_p ) { sc_method_handle handle = new sc_method_process(name_p, free_host, method_p, host_p, opt_p); if ( m_ready_to_simulate ) { if ( !handle->dont_initialize() ) { push_runnable_method( handle ); } } else { m_process_table->push_front( handle ); } return sc_process_handle(handle); }