CommonLibSSE NG
GAtomic.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "REX/W32/BASE.h"
4 
5 namespace RE
6 {
7  class GLock
8  {
9  public:
10  class Locker
11  {
12  public:
13  Locker(GLock* a_lock);
15 
16  // members
17  GLock* lock; // 0
18  };
19  static_assert(sizeof(Locker) == 0x8);
20 
21  GLock(std::uint32_t a_spinCount = 0);
22  ~GLock();
23 
24  void operator delete(void*) = delete;
25 
26  void Lock();
27  void Unlock();
28 
29  // members
31  };
32  static_assert(sizeof(GLock) == 0x28);
33 
34  template <class T>
36  {
37  public:
38  // members
39  volatile T value; // 0
40  };
41  //static_assert(sizeof(GAtomicValueBase<std::int32_t>) == 0x4);
42 
43  template <class T>
44  class GAtomicInt : public GAtomicValueBase<T> // 0
45  {
46  public:
47  };
48  //static_assert(sizeof(GAtomicInt<std::int32_t>) == 0x4);
49 }
Definition: GAtomic.h:45
Definition: GAtomic.h:36
volatile T value
Definition: GAtomic.h:39
Definition: GAtomic.h:11
GLock * lock
Definition: GAtomic.h:17
Locker(GLock *a_lock)
Definition: GAtomic.h:8
GLock(std::uint32_t a_spinCount=0)
REX::W32::CRITICAL_SECTION cs
Definition: GAtomic.h:30
void Unlock()
void Lock()
Definition: AbsorbEffect.h:6
Definition: BASE.h:137