Files
pytorch/torch/csrc/distributed/rpc/python_remote_call.h
Luca Wehrstedt b07d68e24c [reland] Always use intrusive_ptr for Message (2 out of 2) (#59206)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/59206

Reland of https://github.com/pytorch/pytorch/pull/58423

This is part 2 of the previous PR. Here we address the remaining occurrences of "raw" Message, namely the ones within toMessageImpl. And since they're the last ones, we make the constructor of Message private, to prevent new usages from emerging.
ghstack-source-id: 130202848

Test Plan: CI

Reviewed By: mrshenli

Differential Revision: D28623892

fbshipit-source-id: f815cf6b93e488c118e5d2298473e6e9d9f4c132
2021-06-02 05:45:55 -07:00

50 lines
1.2 KiB
C++

#pragma once
#include <torch/csrc/distributed/rpc/message.h>
#include <torch/csrc/distributed/rpc/rpc_command_base.h>
#include <torch/csrc/distributed/rpc/types.h>
#include <torch/csrc/jit/serialization/pickler.h>
#include <vector>
namespace torch {
namespace distributed {
namespace rpc {
class TORCH_API PythonRemoteCall : public RpcCommandBase {
public:
PythonRemoteCall(
SerializedPyObj&& serializedPyObj,
at::IValue retRRefId,
at::IValue retForkId,
const bool isAsyncExecution);
inline const SerializedPyObj& serializedPyObj() const {
return serializedPyObj_;
}
inline const at::IValue& retRRefId() const {
return retRRefId_;
}
inline const at::IValue& retForkId() const {
return retForkId_;
}
inline bool isAsyncExecution() const {
return isAsyncExecution_;
}
c10::intrusive_ptr<Message> toMessageImpl() && override;
static std::unique_ptr<PythonRemoteCall> fromMessage(const Message& message);
private:
SerializedPyObj serializedPyObj_;
const at::IValue retRRefId_;
const at::IValue retForkId_;
const bool isAsyncExecution_;
};
} // namespace rpc
} // namespace distributed
} // namespace torch