// Need to wrap this in an object because we need to dynamically initialize // critical section (because of windows, where there is no way to initialize // a CRITICAL_SECTION statically. On Unix, we could use // PTHREAD_MUTEX_INITIALIZER).
// Note: The critical section does NOT get cleaned up in the destructor. That is // by design: the CritSect class is only ever used as global objects whose // lifetime spans the whole VM life; in that context we don't want the lock to // be cleaned up when global C++ objects are destroyed, but to continue to work // correctly right to the very end of the process life. class CritSect {
critsect_t _cs; public:
CritSect() { init_critsect(&_cs); } //~CritSect() { free_critsect(&_cs); } void enter() { enter_critsect(&_cs); } void leave() { leave_critsect(&_cs); }
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.