Files
pytorch/torch/csrc/distributed/rpc/python_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

33 lines
790 B
C++

#pragma once
#include <torch/csrc/distributed/rpc/rpc_command_base.h>
#include <torch/csrc/distributed/rpc/types.h>
namespace torch {
namespace distributed {
namespace rpc {
// RPC call representing calling a Python function over RPC.
class TORCH_API PythonCall final : public RpcCommandBase {
public:
PythonCall(SerializedPyObj&& serializedPyObj, bool isAsyncExecution);
c10::intrusive_ptr<Message> toMessageImpl() && override;
static std::unique_ptr<PythonCall> fromMessage(const Message& message);
const SerializedPyObj& serializedPyObj() const;
inline bool isAsyncExecution() const {
return isAsyncExecution_;
}
private:
SerializedPyObj serializedPyObj_;
const bool isAsyncExecution_;
};
} // namespace rpc
} // namespace distributed
} // namespace torch