Synchro();
virtual ~Synchro();
e_smx_state_t state; /* State of the synchro */
- char *name; /* synchro name if any */
+ char *name = nullptr; /* synchro name if any */
xbt_fifo_t simcalls; /* List of simcalls waiting for this synchro */
char *category = nullptr; /* For instrumentation */
+
+ virtual void suspend()=0;
+ virtual void resume()=0;
+ virtual void post() =0; // What to do when a simcall terminates
+
+ void ref();
+ void unref();
+ private:
+ int refcount=1;
};
}} // namespace simgrid::simix
#else /* not C++ */