12 #ifndef SST_CORE_THREADSYNC_H
13 #define SST_CORE_THREADSYNC_H
15 #include "sst/core/sst_types.h"
17 #include <unordered_map>
19 #include "sst/core/action.h"
20 #include "sst/core/threadSyncQueue.h"
33 class ThreadSyncQueue;
54 uint64_t getDataSize()
const;
56 void print(
const std::string& header,
Output &out)
const override;
58 static void disable() { disabled =
true; barrier.disable(); }
61 std::vector<ThreadSyncQueue*> queues;
62 std::unordered_map<LinkId_t, Link*> link_map;
75 #endif // SST_CORE_THREADSYNC_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
Main control class for a SST Simulation.
Definition: simulation.h:73
A class to convert between a component's view of time and the core's view of time.
Definition: timeConverter.h:25
void execute(void) override
Function which will be called when the time for this Activity comes to pass.
Definition: threadSync.cc:74
void finalizeLinkConfigurations()
Finish link configuration.
Definition: threadSync.cc:129
void processLinkUntimedData()
Cause an exchange of Untimed Data to occur.
Definition: threadSync.cc:108
void print(const std::string &header, Output &out) const override
Generic print-print function for this Activity.
Definition: threadSync.cc:143
Definition: threadSync.h:35
ThreadSync(int num_threads, Simulation *sim)
Create a new ThreadSync object.
Definition: threadSync.cc:25
Base Class for a queue of Activities.
Definition: activityQueue.h:22
void registerLink(LinkId_t link_id, Link *link)
Register a Link which this Sync Object is responsible for.
Definition: threadSync.cc:62
Definition: threadsafe.h:45
Link between two components.
Definition: link.h:32