diff options
Diffstat (limited to 'src/tests/common/fibers.cpp')
| -rw-r--r-- | src/tests/common/fibers.cpp | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/src/tests/common/fibers.cpp b/src/tests/common/fibers.cpp index d94492fc6..751cbe196 100644 --- a/src/tests/common/fibers.cpp +++ b/src/tests/common/fibers.cpp | |||
| @@ -67,7 +67,7 @@ void TestControl1::DoWork() { | |||
| 67 | value++; | 67 | value++; |
| 68 | } | 68 | } |
| 69 | results[id] = value; | 69 | results[id] = value; |
| 70 | Fiber::YieldTo(work_fibers[id], thread_fibers[id]); | 70 | Fiber::YieldTo(work_fibers[id], *thread_fibers[id]); |
| 71 | } | 71 | } |
| 72 | 72 | ||
| 73 | void TestControl1::ExecuteThread(u32 id) { | 73 | void TestControl1::ExecuteThread(u32 id) { |
| @@ -76,7 +76,7 @@ void TestControl1::ExecuteThread(u32 id) { | |||
| 76 | thread_fibers[id] = thread_fiber; | 76 | thread_fibers[id] = thread_fiber; |
| 77 | work_fibers[id] = std::make_shared<Fiber>(std::function<void(void*)>{WorkControl1}, this); | 77 | work_fibers[id] = std::make_shared<Fiber>(std::function<void(void*)>{WorkControl1}, this); |
| 78 | items[id] = rand() % 256; | 78 | items[id] = rand() % 256; |
| 79 | Fiber::YieldTo(thread_fibers[id], work_fibers[id]); | 79 | Fiber::YieldTo(thread_fibers[id], *work_fibers[id]); |
| 80 | thread_fibers[id]->Exit(); | 80 | thread_fibers[id]->Exit(); |
| 81 | } | 81 | } |
| 82 | 82 | ||
| @@ -117,11 +117,11 @@ public: | |||
| 117 | for (u32 i = 0; i < 12000; i++) { | 117 | for (u32 i = 0; i < 12000; i++) { |
| 118 | value1 += i; | 118 | value1 += i; |
| 119 | } | 119 | } |
| 120 | Fiber::YieldTo(fiber1, fiber3); | 120 | Fiber::YieldTo(fiber1, *fiber3); |
| 121 | const u32 id = thread_ids.Get(); | 121 | const u32 id = thread_ids.Get(); |
| 122 | assert1 = id == 1; | 122 | assert1 = id == 1; |
| 123 | value2 += 5000; | 123 | value2 += 5000; |
| 124 | Fiber::YieldTo(fiber1, thread_fibers[id]); | 124 | Fiber::YieldTo(fiber1, *thread_fibers[id]); |
| 125 | } | 125 | } |
| 126 | 126 | ||
| 127 | void DoWork2() { | 127 | void DoWork2() { |
| @@ -129,7 +129,7 @@ public: | |||
| 129 | ; | 129 | ; |
| 130 | value2 = 2000; | 130 | value2 = 2000; |
| 131 | trap = false; | 131 | trap = false; |
| 132 | Fiber::YieldTo(fiber2, fiber1); | 132 | Fiber::YieldTo(fiber2, *fiber1); |
| 133 | assert3 = false; | 133 | assert3 = false; |
| 134 | } | 134 | } |
| 135 | 135 | ||
| @@ -137,19 +137,19 @@ public: | |||
| 137 | const u32 id = thread_ids.Get(); | 137 | const u32 id = thread_ids.Get(); |
| 138 | assert2 = id == 0; | 138 | assert2 = id == 0; |
| 139 | value1 += 1000; | 139 | value1 += 1000; |
| 140 | Fiber::YieldTo(fiber3, thread_fibers[id]); | 140 | Fiber::YieldTo(fiber3, *thread_fibers[id]); |
| 141 | } | 141 | } |
| 142 | 142 | ||
| 143 | void ExecuteThread(u32 id); | 143 | void ExecuteThread(u32 id); |
| 144 | 144 | ||
| 145 | void CallFiber1() { | 145 | void CallFiber1() { |
| 146 | const u32 id = thread_ids.Get(); | 146 | const u32 id = thread_ids.Get(); |
| 147 | Fiber::YieldTo(thread_fibers[id], fiber1); | 147 | Fiber::YieldTo(thread_fibers[id], *fiber1); |
| 148 | } | 148 | } |
| 149 | 149 | ||
| 150 | void CallFiber2() { | 150 | void CallFiber2() { |
| 151 | const u32 id = thread_ids.Get(); | 151 | const u32 id = thread_ids.Get(); |
| 152 | Fiber::YieldTo(thread_fibers[id], fiber2); | 152 | Fiber::YieldTo(thread_fibers[id], *fiber2); |
| 153 | } | 153 | } |
| 154 | 154 | ||
| 155 | void Exit(); | 155 | void Exit(); |
| @@ -241,23 +241,23 @@ public: | |||
| 241 | 241 | ||
| 242 | void DoWork1() { | 242 | void DoWork1() { |
| 243 | value1 += 1; | 243 | value1 += 1; |
| 244 | Fiber::YieldTo(fiber1, fiber2); | 244 | Fiber::YieldTo(fiber1, *fiber2); |
| 245 | const u32 id = thread_ids.Get(); | 245 | const u32 id = thread_ids.Get(); |
| 246 | value3 += 1; | 246 | value3 += 1; |
| 247 | Fiber::YieldTo(fiber1, thread_fibers[id]); | 247 | Fiber::YieldTo(fiber1, *thread_fibers[id]); |
| 248 | } | 248 | } |
| 249 | 249 | ||
| 250 | void DoWork2() { | 250 | void DoWork2() { |
| 251 | value2 += 1; | 251 | value2 += 1; |
| 252 | const u32 id = thread_ids.Get(); | 252 | const u32 id = thread_ids.Get(); |
| 253 | Fiber::YieldTo(fiber2, thread_fibers[id]); | 253 | Fiber::YieldTo(fiber2, *thread_fibers[id]); |
| 254 | } | 254 | } |
| 255 | 255 | ||
| 256 | void ExecuteThread(u32 id); | 256 | void ExecuteThread(u32 id); |
| 257 | 257 | ||
| 258 | void CallFiber1() { | 258 | void CallFiber1() { |
| 259 | const u32 id = thread_ids.Get(); | 259 | const u32 id = thread_ids.Get(); |
| 260 | Fiber::YieldTo(thread_fibers[id], fiber1); | 260 | Fiber::YieldTo(thread_fibers[id], *fiber1); |
| 261 | } | 261 | } |
| 262 | 262 | ||
| 263 | void Exit(); | 263 | void Exit(); |
| @@ -332,7 +332,7 @@ public: | |||
| 332 | 332 | ||
| 333 | void Execute() { | 333 | void Execute() { |
| 334 | thread_fiber = Fiber::ThreadToFiber(); | 334 | thread_fiber = Fiber::ThreadToFiber(); |
| 335 | Fiber::YieldTo(thread_fiber, fiber1); | 335 | Fiber::YieldTo(thread_fiber, *fiber1); |
| 336 | thread_fiber->Exit(); | 336 | thread_fiber->Exit(); |
| 337 | } | 337 | } |
| 338 | 338 | ||
| @@ -340,7 +340,7 @@ public: | |||
| 340 | fiber1->SetRewindPoint(std::function<void(void*)>{WorkControl4}, this); | 340 | fiber1->SetRewindPoint(std::function<void(void*)>{WorkControl4}, this); |
| 341 | if (rewinded) { | 341 | if (rewinded) { |
| 342 | goal_reached = true; | 342 | goal_reached = true; |
| 343 | Fiber::YieldTo(fiber1, thread_fiber); | 343 | Fiber::YieldTo(fiber1, *thread_fiber); |
| 344 | } | 344 | } |
| 345 | rewinded = true; | 345 | rewinded = true; |
| 346 | fiber1->Rewind(); | 346 | fiber1->Rewind(); |