Critical.h 851 B

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