blob: 430d0cbd9a28ca5fce0a58932c3940376f358b51 [file] [log] [blame]
#pragma once
#include <functional>
namespace torch { namespace jit {
class ResourceGuard {
std::function<void()> _destructor;
bool _released;
public:
ResourceGuard(std::function<void()> destructor)
: _destructor(std::move(destructor))
, _released(false) {}
~ResourceGuard() {
if (!_released) _destructor();
}
void release() {
_released = true;
}
};
}}