Critical.h 874 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. __declspec( dllexport ) Critical();
  16. //! Destructor
  17. __declspec( dllexport ) ~Critical();
  18. //! sperrt das Objekt
  19. __declspec( dllexport ) void lock();
  20. //! versucht das Objekt zu sperren
  21. __declspec( dllexport ) bool tryLock();
  22. //! entsperrt das Objekt
  23. __declspec( dllexport ) void unlock();
  24. //! gibt true zurück, wenn das Objekt gesperrt ist
  25. __declspec( dllexport ) bool isLocked() const;
  26. //! gibt einen Zeiger auf den Thread zurück, der das Objekt gesperrt hat
  27. __declspec( dllexport ) const Thread *zOwner() const;
  28. };
  29. }