summaryrefslogtreecommitdiff
path: root/src/common/fiber.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2020-11-06 20:01:03 -0800
committerGitHub <noreply@github.com>2020-11-06 20:01:03 -0800
commitf6a89edb67c903739d0edff06b7c954825c133f9 (patch)
tree6a92120ea5b1c063165a295d2a8814c649522e9f /src/common/fiber.h
parent91a45834fd10620a9c3bb567183682a9e6a88217 (diff)
parent00fb79b2f3f49335543c57f1d27b057320f3ff05 (diff)
Merge pull request #4899 from lioncash/fiberimpl
common/fiber: Move all member variables into impl class
Diffstat (limited to 'src/common/fiber.h')
-rw-r--r--src/common/fiber.h20
1 files changed, 3 insertions, 17 deletions
diff --git a/src/common/fiber.h b/src/common/fiber.h
index 1a027be96..5323e8579 100644
--- a/src/common/fiber.h
+++ b/src/common/fiber.h
@@ -7,9 +7,6 @@
#include <functional>
#include <memory>
-#include "common/common_types.h"
-#include "common/spin_lock.h"
-
#if !defined(_WIN32) && !defined(WIN32)
namespace boost::context::detail {
struct transfer_t;
@@ -41,8 +38,8 @@ public:
Fiber(const Fiber&) = delete;
Fiber& operator=(const Fiber&) = delete;
- Fiber(Fiber&&) = delete;
- Fiber& operator=(Fiber&&) = delete;
+ Fiber(Fiber&&) = default;
+ Fiber& operator=(Fiber&&) = default;
/// Yields control from Fiber 'from' to Fiber 'to'
/// Fiber 'from' must be the currently running fiber.
@@ -57,9 +54,7 @@ public:
void Exit();
/// Changes the start parameter of the fiber. Has no effect if the fiber already started
- void SetStartParameter(void* new_parameter) {
- start_parameter = new_parameter;
- }
+ void SetStartParameter(void* new_parameter);
private:
Fiber();
@@ -77,16 +72,7 @@ private:
#endif
struct FiberImpl;
-
- SpinLock guard{};
- std::function<void(void*)> entry_point;
- std::function<void(void*)> rewind_point;
- void* rewind_parameter{};
- void* start_parameter{};
- std::shared_ptr<Fiber> previous_fiber;
std::unique_ptr<FiberImpl> impl;
- bool is_thread_fiber{};
- bool released{};
};
} // namespace Common