From a5ab85ac37bbfed739e75ba9c2226b1e6bf1fd37 Mon Sep 17 00:00:00 2001 From: bunnei Date: Fri, 5 Mar 2021 17:08:17 -0800 Subject: Revert "core: Switch to unique_ptr for usage of Common::Fiber." --- src/tests/common/fibers.cpp | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) (limited to 'src/tests/common') diff --git a/src/tests/common/fibers.cpp b/src/tests/common/fibers.cpp index b2ded2065..d94492fc6 100644 --- a/src/tests/common/fibers.cpp +++ b/src/tests/common/fibers.cpp @@ -67,15 +67,16 @@ void TestControl1::DoWork() { value++; } results[id] = value; - Fiber::YieldTo(work_fibers[id].get(), thread_fibers[id].get()); + Fiber::YieldTo(work_fibers[id], thread_fibers[id]); } void TestControl1::ExecuteThread(u32 id) { thread_ids.Register(id); - thread_fibers[id] = Fiber::ThreadToFiber(); + auto thread_fiber = Fiber::ThreadToFiber(); + thread_fibers[id] = thread_fiber; work_fibers[id] = std::make_shared(std::function{WorkControl1}, this); items[id] = rand() % 256; - Fiber::YieldTo(thread_fibers[id].get(), work_fibers[id].get()); + Fiber::YieldTo(thread_fibers[id], work_fibers[id]); thread_fibers[id]->Exit(); } @@ -116,11 +117,11 @@ public: for (u32 i = 0; i < 12000; i++) { value1 += i; } - Fiber::YieldTo(fiber1.get(), fiber3.get()); + Fiber::YieldTo(fiber1, fiber3); const u32 id = thread_ids.Get(); assert1 = id == 1; value2 += 5000; - Fiber::YieldTo(fiber1.get(), thread_fibers[id].get()); + Fiber::YieldTo(fiber1, thread_fibers[id]); } void DoWork2() { @@ -128,7 +129,7 @@ public: ; value2 = 2000; trap = false; - Fiber::YieldTo(fiber2.get(), fiber1.get()); + Fiber::YieldTo(fiber2, fiber1); assert3 = false; } @@ -136,19 +137,19 @@ public: const u32 id = thread_ids.Get(); assert2 = id == 0; value1 += 1000; - Fiber::YieldTo(fiber3.get(), thread_fibers[id].get()); + Fiber::YieldTo(fiber3, thread_fibers[id]); } void ExecuteThread(u32 id); void CallFiber1() { const u32 id = thread_ids.Get(); - Fiber::YieldTo(thread_fibers[id].get(), fiber1.get()); + Fiber::YieldTo(thread_fibers[id], fiber1); } void CallFiber2() { const u32 id = thread_ids.Get(); - Fiber::YieldTo(thread_fibers[id].get(), fiber2.get()); + Fiber::YieldTo(thread_fibers[id], fiber2); } void Exit(); @@ -184,7 +185,8 @@ static void WorkControl2_3(void* control) { void TestControl2::ExecuteThread(u32 id) { thread_ids.Register(id); - thread_fibers[id] = Fiber::ThreadToFiber(); + auto thread_fiber = Fiber::ThreadToFiber(); + thread_fibers[id] = thread_fiber; } void TestControl2::Exit() { @@ -239,23 +241,23 @@ public: void DoWork1() { value1 += 1; - Fiber::YieldTo(fiber1.get(), fiber2.get()); + Fiber::YieldTo(fiber1, fiber2); const u32 id = thread_ids.Get(); value3 += 1; - Fiber::YieldTo(fiber1.get(), thread_fibers[id].get()); + Fiber::YieldTo(fiber1, thread_fibers[id]); } void DoWork2() { value2 += 1; const u32 id = thread_ids.Get(); - Fiber::YieldTo(fiber2.get(), thread_fibers[id].get()); + Fiber::YieldTo(fiber2, thread_fibers[id]); } void ExecuteThread(u32 id); void CallFiber1() { const u32 id = thread_ids.Get(); - Fiber::YieldTo(thread_fibers[id].get(), fiber1.get()); + Fiber::YieldTo(thread_fibers[id], fiber1); } void Exit(); @@ -264,7 +266,7 @@ public: u32 value2{}; u32 value3{}; ThreadIds thread_ids; - std::vector> thread_fibers; + std::vector> thread_fibers; std::shared_ptr fiber1; std::shared_ptr fiber2; }; @@ -281,7 +283,8 @@ static void WorkControl3_2(void* control) { void TestControl3::ExecuteThread(u32 id) { thread_ids.Register(id); - thread_fibers[id] = Fiber::ThreadToFiber(); + auto thread_fiber = Fiber::ThreadToFiber(); + thread_fibers[id] = thread_fiber; } void TestControl3::Exit() { @@ -329,7 +332,7 @@ public: void Execute() { thread_fiber = Fiber::ThreadToFiber(); - Fiber::YieldTo(thread_fiber.get(), fiber1.get()); + Fiber::YieldTo(thread_fiber, fiber1); thread_fiber->Exit(); } @@ -337,7 +340,7 @@ public: fiber1->SetRewindPoint(std::function{WorkControl4}, this); if (rewinded) { goal_reached = true; - Fiber::YieldTo(fiber1.get(), thread_fiber.get()); + Fiber::YieldTo(fiber1, thread_fiber); } rewinded = true; fiber1->Rewind(); -- cgit v1.2.3