/usr/local/lib64/python3.6/site-packages/torch/include/torch/csrc/utils
NameSizeModeActions
auto_gil.h10340644editdlrm
byte_order.h24840644editdlrm
crash_handler.h11460644editdlrm
cuda_enabled.h1540644editdlrm
cuda_lazy_init.h9740644editdlrm
disable_torch_function.h8630644editdlrm
disallow_copy.h1030644editdlrm
init.h3240644editdlrm
invalid_arguments.h3020644editdlrm
memory.h11730644editdlrm
numpy_stub.h3990644editdlrm
object_ptr.h13290644editdlrm
out_types.h2940644editdlrm
pybind.h79660644editdlrm
pycfunction_helpers.h2090644editdlrm
python_arg_parser.h307530644editdlrm
python_compat.h29040644editdlrm
python_dispatch.h1740644editdlrm
python_numbers.h50640644editdlrm
python_scalars.h29280644editdlrm
python_strings.h45920644editdlrm
python_stub.h560644editdlrm
python_tuples.h6840644editdlrm
six.h14250644editdlrm
structseq.h1530644editdlrm
tensor_apply.h4310644editdlrm
tensor_dtypes.h2440644editdlrm
tensor_flatten.h27800644editdlrm
tensor_layouts.h1070644editdlrm
tensor_list.h1960644editdlrm
tensor_memoryformats.h1130644editdlrm
tensor_new.h18070644editdlrm
tensor_numpy.h5420644editdlrm
tensor_qschemes.h1860644editdlrm
tensor_types.h4910644editdlrm
throughput_benchmark-inl.h52100644editdlrm
throughput_benchmark.h68680644editdlrm
variadic.h43940644editdlrm
Edit: /usr/local/lib64/python3.6/site-packages/torch/include/torch/csrc/utils/object_ptr.h (1329B)
#pragma once #include template class THPPointer { public: THPPointer(): ptr(nullptr) {}; explicit THPPointer(T *ptr) noexcept : ptr(ptr) {}; THPPointer(THPPointer &&p) noexcept { free(); ptr = p.ptr; p.ptr = nullptr; }; ~THPPointer() { free(); }; T * get() { return ptr; } const T * get() const { return ptr; } T * release() { T *tmp = ptr; ptr = nullptr; return tmp; } operator T*() { return ptr; } THPPointer& operator =(T *new_ptr) noexcept { free(); ptr = new_ptr; return *this; } THPPointer& operator =(THPPointer &&p) noexcept { free(); ptr = p.ptr; p.ptr = nullptr; return *this; } T * operator ->() { return ptr; } explicit operator bool() const { return ptr != nullptr; } private: void free(); T *ptr = nullptr; }; /** * An RAII-style, owning pointer to a PyObject. You must protect * destruction of this object with the GIL. * * WARNING: Think twice before putting this as a field in a C++ * struct. This class does NOT take out the GIL on destruction, * so if you will need to ensure that the destructor of your struct * is either (a) always invoked when the GIL is taken or (b) takes * out the GIL itself. Easiest way to avoid this problem is to * not use THPPointer in this situation. */ using THPObjectPtr = THPPointer;