/*
- * Copyright 2016 Facebook, Inc.
+ * Copyright 2017 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include <vector>
#include <folly/AtomicIntrusiveLinkedList.h>
+#include <folly/CPortability.h>
#include <folly/Executor.h>
#include <folly/IntrusiveList.h>
#include <folly/Likely.h>
std::unique_ptr<LoopController> loopController,
Options options = Options());
- ~FiberManager();
+ ~FiberManager() override;
/**
* Controller access.
T& local();
template <typename T>
- static T& localThread();
+ FOLLY_EXPORT static T& localThread();
/**
* @return How many fiber objects (and stacks) has this manager allocated.
template <typename F>
RemoteTask(F&& f, const Fiber::LocalData& localData_)
: func(std::forward<F>(f)),
- localData(folly::make_unique<Fiber::LocalData>(localData_)),
+ localData(std::make_unique<Fiber::LocalData>(localData_)),
rcontext(RequestContext::saveContext()) {}
folly::Function<void()> func;
std::unique_ptr<Fiber::LocalData> localData;
FiberTailQueue readyFibers_; /**< queue of fibers ready to be executed */
FiberTailQueue yieldedFibers_; /**< queue of fibers which have yielded
execution */
- FiberTailQueue fibersPool_; /**< pool of unitialized Fiber objects */
+ FiberTailQueue fibersPool_; /**< pool of uninitialized Fiber objects */
GlobalFiberTailQueue allFibers_; /**< list of all Fiber objects owned */
void* fakeStack,
const void** saveStackBase,
size_t* saveStackSize);
+ void freeFakeStack(void* fakeStack);
void unpoisonFiberStack(const Fiber* fiber);
#endif // FOLLY_SANITIZE_ADDRESS