13TEST(SyncSwitchTest, Basic) {
15 bool switch_value =
false;
16 sync_switch.
Execute(SyncSwitch::Handlers()
17 .SetIfTrue([&] { switch_value =
true; })
18 .SetIfFalse([&] { switch_value =
false; }));
19 EXPECT_FALSE(switch_value);
21 sync_switch.
Execute(SyncSwitch::Handlers()
22 .SetIfTrue([&] { switch_value =
true; })
23 .SetIfFalse([&] { switch_value =
false; }));
34TEST(SyncSwitchTest, SharedLock) {
37 bool switch_value1 =
false;
38 bool switch_value2 =
false;
40 std::thread thread1([&] {
42 SyncSwitch::Handlers()
46 std::thread thread2([&]() {
48 SyncSwitch::Handlers()
49 .SetIfTrue([&] { switch_value2 =
true; })
50 .SetIfFalse([&] { switch_value2 =
false; }));
54 .SetIfFalse([&] { switch_value1 =
false; }));