Summary:
Inteded use case is to write tracing code in common components that can adjust its behavior to the current observer. E.g.
auto* observer = FiberManager::getUnsafe()->getObserver();
if (auto* specific_observer = dynamic_cast<SpecificObserver*>(observer)) {
specific_observer->set_fiber_name(...);
}
Reviewed By: andriigrynenko
Differential Revision:
D3392890
fbshipit-source-id:
284b4964bbb17e9a081779b870af68e8f1a81634
observer_ = observer;
}
+ExecutionObserver* FiberManager::getObserver() {
+ return observer_;
+}
+
void FiberManager::setPreemptRunner(InlineFunctionRunner* preemptRunner) {
preemptRunner_ = preemptRunner;
}
*/
void setObserver(ExecutionObserver* observer);
+ /**
+ * @return Current observer for this FiberManager. Returns nullptr
+ * if no observer has been set.
+ */
+ ExecutionObserver* getObserver();
+
/**
* Setup fibers preempt runner.
*/