xref: /aosp_15_r20/external/pytorch/c10/util/ParallelGuard.cpp (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1*da0073e9SAndroid Build Coastguard Worker #include <c10/util/ParallelGuard.h>
2*da0073e9SAndroid Build Coastguard Worker 
3*da0073e9SAndroid Build Coastguard Worker namespace c10 {
4*da0073e9SAndroid Build Coastguard Worker 
5*da0073e9SAndroid Build Coastguard Worker thread_local bool in_at_parallel = false;
6*da0073e9SAndroid Build Coastguard Worker 
is_enabled()7*da0073e9SAndroid Build Coastguard Worker bool ParallelGuard::is_enabled() {
8*da0073e9SAndroid Build Coastguard Worker   return in_at_parallel;
9*da0073e9SAndroid Build Coastguard Worker }
10*da0073e9SAndroid Build Coastguard Worker 
ParallelGuard(bool state)11*da0073e9SAndroid Build Coastguard Worker ParallelGuard::ParallelGuard(bool state) : previous_state_(is_enabled()) {
12*da0073e9SAndroid Build Coastguard Worker   in_at_parallel = state;
13*da0073e9SAndroid Build Coastguard Worker }
14*da0073e9SAndroid Build Coastguard Worker 
~ParallelGuard()15*da0073e9SAndroid Build Coastguard Worker ParallelGuard::~ParallelGuard() {
16*da0073e9SAndroid Build Coastguard Worker   in_at_parallel = previous_state_;
17*da0073e9SAndroid Build Coastguard Worker }
18*da0073e9SAndroid Build Coastguard Worker 
19*da0073e9SAndroid Build Coastguard Worker } // namespace c10
20