Skip to content

Commit 30c350b

Browse files
authored
Merge pull request #10659 from panyx0718/fix_rpc
Delete prefetch_ctx_ after use.
2 parents 13836b0 + 32e0556 commit 30c350b

File tree

4 files changed

+7
-7
lines changed

4 files changed

+7
-7
lines changed

paddle/fluid/operators/detail/grpc_server.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ void AsyncGRPCServer::TryToRegisterNewPrefetchOne() {
306306
}
307307
RequestPrefetch* prefetch =
308308
new RequestPrefetch(&service_, cq_prefetch_.get(), sync_mode_, scope_,
309-
dev_ctx_, executor_, program_, prefetch_ctx_);
309+
dev_ctx_, executor_, program_, prefetch_ctx_.get());
310310

311311
VLOG(4) << "Create RequestPrefetch status:" << prefetch->Status();
312312
}

paddle/fluid/operators/detail/grpc_server.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,9 @@ class AsyncGRPCServer final {
6464

6565
void SetExecutor(framework::Executor *executor) { executor_ = executor; }
6666

67-
void SetPrefetchPreparedCtx(framework::ExecutorPrepareContext *prepared) {
68-
prefetch_ctx_ = prepared;
67+
void SetPrefetchPreparedCtx(
68+
std::unique_ptr<framework::ExecutorPrepareContext> prepared) {
69+
prefetch_ctx_.reset(prepared.release());
6970
}
7071

7172
int GetSelectedPort() const { return selected_port_; }
@@ -116,7 +117,7 @@ class AsyncGRPCServer final {
116117
std::unique_ptr<std::thread> t_get_;
117118
std::unique_ptr<std::thread> t_prefetch_;
118119

119-
framework::ExecutorPrepareContext *prefetch_ctx_;
120+
std::unique_ptr<framework::ExecutorPrepareContext> prefetch_ctx_;
120121
framework::ProgramDesc *program_;
121122
framework::Executor *executor_;
122123
int selected_port_;

paddle/fluid/operators/detail/grpc_server_test.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ void StartServer(const std::string& endpoint) {
100100
InitTensorsOnServer(&scope, &place, 10);
101101

102102
rpc_service_->SetProgram(&program);
103-
rpc_service_->SetPrefetchPreparedCtx(prepared.get());
103+
rpc_service_->SetPrefetchPreparedCtx(std::move(prepared));
104104
rpc_service_->SetDevCtx(&ctx);
105105
rpc_service_->SetScope(&scope);
106106
rpc_service_->SetExecutor(&exe);

paddle/fluid/operators/listen_and_serv_op.cc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -322,8 +322,7 @@ void ListenAndServOp::RunImpl(const framework::Scope &scope,
322322
// prepare for prefetch
323323
VLOG(3) << "prefetch block id is " << prefetch_block->ID();
324324
auto prefetch_prepared = executor.Prepare(*program, prefetch_block->ID());
325-
rpc_service_->SetPrefetchPreparedCtx(prefetch_prepared.get());
326-
prefetch_prepared.release();
325+
rpc_service_->SetPrefetchPreparedCtx(std::move(prefetch_prepared));
327326

328327
// start the server listening after all member initialized.
329328
server_thread_.reset(new std::thread(RunServer, rpc_service_));

0 commit comments

Comments
 (0)