Critical.h 776 B

12345678910111213141516171819202122232425262728293031323334
  1. #pragma once
  2. #include "Betriebssystem.h"
  3. namespace Framework
  4. {
  5. class Thread;
  6. class Critical
  7. {
  8. private:
  9. CRITICAL_SECTION cs;
  10. Thread *owner;
  11. int lockCount;
  12. int id;
  13. public:
  14. //! Konstructor
  15. DLLEXPORT Critical();
  16. //! Destructor
  17. DLLEXPORT ~Critical();
  18. //! sperrt das Objekt
  19. DLLEXPORT void lock();
  20. //! versucht das Objekt zu sperren
  21. DLLEXPORT bool tryLock();
  22. //! entsperrt das Objekt
  23. DLLEXPORT void unlock();
  24. //! gibt true zurück, wenn das Objekt gesperrt ist
  25. DLLEXPORT bool isLocked() const;
  26. //! gibt einen Zeiger auf den Thread zurück, der das Objekt gesperrt hat
  27. DLLEXPORT const Thread *zOwner() const;
  28. };
  29. }