pytorch
e1eb876a - [PyTorch] Update Synchronized<T>::withLock() to return the type/value from the aceepted callable (#74108)

Commit
2 years ago
[PyTorch] Update Synchronized<T>::withLock() to return the type/value from the aceepted callable (#74108) Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/74108 Currently, `void c10::Synchronized<T>::withLock(CB)` accepts a callback but returns `void`. For a callback (CB) returning a value, `withLock()` can not be used to retrieve the returned value. This change makes it possible for the caller to retrieve that value. The only gotcha is that if the value has only move semantics (such as `std::unique_ptr<T>`, then this won't work as currently written). To be able to do that, one needs to use `std::enable_if<T>` to enable a separate overload that works only for moveable types (detectable using `std::is_move_constructible<T>`). ghstack-source-id: 151471745 Test Plan: Built model tracer using the command: ``` buck build -c pt.disable_per_op_profiling=0 -c pt.enable_record_kernel_dtype=1 --show-output xplat/caffe2/fb/model_tracer:model_tracer ``` Reviewed By: malfet Differential Revision: D34822915 fbshipit-source-id: 2ade3d963d1e997a791508ec54a930827f7849b5 (cherry picked from commit d5429073137b33978882299c5ee5cc7ffb964f8e)
Author
Committer
Parents
Loading