@@ -80,6 +80,9 @@ class gil_scoped_acquire {
80
80
inc_ref ();
81
81
}
82
82
83
+ gil_scoped_acquire (const gil_scoped_acquire &) = delete ;
84
+ gil_scoped_acquire &operator =(const gil_scoped_acquire &) = delete ;
85
+
83
86
void inc_ref () { ++tstate->gilstate_counter ; }
84
87
85
88
PYBIND11_NOINLINE void dec_ref () {
@@ -144,6 +147,9 @@ class gil_scoped_release {
144
147
}
145
148
}
146
149
150
+ gil_scoped_release (const gil_scoped_acquire &) = delete ;
151
+ gil_scoped_release &operator =(const gil_scoped_acquire &) = delete ;
152
+
147
153
// / This method will disable the PyThreadState_DeleteCurrent call and the
148
154
// / GIL won't be acquired. This method should be used if the interpreter
149
155
// / could be shutting down when this is called, as thread deletion is not
@@ -178,6 +184,8 @@ class gil_scoped_acquire {
178
184
179
185
public:
180
186
gil_scoped_acquire () { state = PyGILState_Ensure (); }
187
+ gil_scoped_acquire (const gil_scoped_acquire &) = delete ;
188
+ gil_scoped_acquire &operator =(const gil_scoped_acquire &) = delete ;
181
189
~gil_scoped_acquire () { PyGILState_Release (state); }
182
190
void disarm () {}
183
191
};
@@ -187,6 +195,8 @@ class gil_scoped_release {
187
195
188
196
public:
189
197
gil_scoped_release () { state = PyEval_SaveThread (); }
198
+ gil_scoped_release (const gil_scoped_release &) = delete ;
199
+ gil_scoped_release &operator =(const gil_scoped_acquire &) = delete ;
190
200
~gil_scoped_release () { PyEval_RestoreThread (state); }
191
201
void disarm () {}
192
202
};
0 commit comments