12 #ifndef SST_CORE_CORE_EXIT_H
13 #define SST_CORE_CORE_EXIT_H
15 #include <sst/core/sst_types.h>
17 #include <unordered_set>
20 #include <sst/core/action.h>
24 #define _EXIT_DBG( fmt, args...) __DBG( DBG_EXIT, Exit, fmt, ## args )
54 bool refInc( ComponentId_t, uint32_t thread );
56 bool refDec( ComponentId_t, uint32_t thread );
58 unsigned int getRefCount();
59 SimTime_t getEndTime() {
return end_time; }
64 void print(
const std::string& header,
Output &out)
const override {
65 out.
output(
"%s Exit Action to be delivered at %" PRIu64
" with priority %d\n",
69 unsigned int getGlobalCount() {
76 void operator=(Exit
const&);
82 unsigned int m_refCount;
83 unsigned int* m_thread_counts;
84 unsigned int global_count;
85 TimeConverter* m_period;
86 std::unordered_set<ComponentId_t> m_idSet;
89 Core::ThreadSafe::Spinlock slock;
97 #endif // SST_CORE_EXIT_H
Output object provides consistent method for outputting data to stdout, stderr and/or sst debug file...
Definition: output.h:54
An Action is a schedulable Activity which is not an Event.
Definition: action.h:30
bool refInc(ComponentId_t, uint32_t thread)
Increment Reference Count for a given Component ID.
Definition: exit.cc:54
bool refDec(ComponentId_t, uint32_t thread)
Decrement Reference Count for a given Component ID.
Definition: exit.cc:88
void print(const std::string &header, Output &out) const override
Generic print-print function for this Activity.
Definition: exit.h:64
A class to convert between a component's view of time and the core's view of time.
Definition: timeConverter.h:25
Exit Event Action.
Definition: exit.h:34
SimTime_t getDeliveryTime() const
Return the time at which this Activity will be delivered.
Definition: activity.h:207
void output(uint32_t line, const char *file, const char *func, const char *format,...) const
Output the message with formatting as specified by the format parameter.
Definition: output.h:184
int getPriority() const
Return the Priority of this Activity.
Definition: activity.h:212
void execute(void) override
Function which will be called when the time for this Activity comes to pass.
Definition: exit.cc:138
Exit(int num_threads, TimeConverter *period, bool single_rank)
Create a new ExitEvent.
Definition: exit.cc:32