lock
void lock();
Use this function to protect against multithreading races if needed. The function will block until the lock is acquired. Any call to lock()
needs to be paired with a call to unlock()
.
Note that the lock has already been acquired when SST calls implStartOutputEntries()
on a StatisticOutput object, which ensures that implStartOutputEntries()
, implStopOutputEntries()
and any intervening calls to outputField()
occur atomically for each statistic. Further, startOfSimulation()
and endOfSimulation()
are only called for thread 0 on each rank and locking is not necessary. Locking will typically only be required when inheriting from StatisticOutput
directly, rather than from StatisticFieldsOutput
.
Parameters
- returns none
Example
this->lock();
buffer += "thing0";
buffer += "thing1";
buffer += "thing2";
this->unlock();
Header
#include <sst/core/statapi/statoutput.h>