mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-07 12:21:27 +01:00
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/59355 Add a `CheckKnob()` function for doing run-time checks of feature roll-out knobs. This provides an API for safely controlling the roll-out of new functionality in the code. Test Plan: Included some basic unit tests. Reviewed By: voznesenskym Differential Revision: D26536430 fbshipit-source-id: 2e53234c6d9ce624848fc8b2c76f6833f344f48b
33 lines
715 B
C++
33 lines
715 B
C++
#pragma once
|
|
|
|
#include <memory>
|
|
|
|
#include <c10/util/string_view.h>
|
|
|
|
namespace caffe2 {
|
|
|
|
/**
|
|
* Patch the value of a knob during a unit test.
|
|
*
|
|
* This forces the knob to the specified value for as long as the KnobPatcher
|
|
* object exists. When the KnobPatcher object is destroyed the knob will revert
|
|
* to its previous value.
|
|
*/
|
|
class KnobPatcher {
|
|
public:
|
|
KnobPatcher(c10::string_view name, bool value);
|
|
~KnobPatcher();
|
|
|
|
KnobPatcher(KnobPatcher&&) noexcept;
|
|
KnobPatcher& operator=(KnobPatcher&&) noexcept;
|
|
KnobPatcher(const KnobPatcher&) = delete;
|
|
KnobPatcher& operator=(const KnobPatcher&) = delete;
|
|
|
|
private:
|
|
class PatchState;
|
|
|
|
std::unique_ptr<PatchState> state_;
|
|
};
|
|
|
|
} // namespace caffe2
|