@@ -100,49 +100,48 @@ Future<> GrpcClientHostBufferStore::Store(uint64_t handle,
100
100
std::unique_ptr<std::string> buffered_data;
101
101
102
102
auto reservation = ScopedAcquireSemaphore (store_throttler_);
103
- work_queue_->Schedule (
104
- [this , reservation = std::move (reservation), handle,
105
- promise = std::make_shared<Future<>::Promise>(std::move (promise)), data,
106
- flow]() mutable -> void {
107
- auto span = flow.Span <XFlowHelper::kRecv >();
108
- GrpcHostBufferStoreMetadata metadata;
109
- metadata.set_session_id (session_id_);
110
- metadata.set_handle (handle);
111
- metadata.set_buffer_size (data.size ());
112
- VLOG (3 ) << " GrpcClientHostBufferStore::Store start "
113
- << metadata.ShortDebugString ();
114
-
115
- ::grpc::ClientContext context;
116
- context.AddMetadata (" ifrt-proxy-grpc-host-buffer-store-metadata-bin" ,
117
- metadata.SerializeAsString ());
118
-
119
- GrpcHostBufferStoreResponse response;
120
- auto writer = stub_->HostBufferStore (&context, &response);
121
-
122
- {
123
- tsl::profiler::TraceMe trace_me_send_data ([size = data.size ()]() {
124
- return tsl::profiler::TraceMeEncode (
125
- " GrpcClientHostBufferStore::StoreAsync_Send" , {{" size" , size}});
126
- });
127
- for (int64_t offset = 0 ; offset < data.size (); offset += kChunkSize ) {
128
- GrpcHostBufferStoreRequest request;
129
- SetDataFromStringView (request, data.substr (offset, kChunkSize ));
130
- writer->Write (request);
131
- }
132
-
133
- if (!writer->WritesDone ()) {
134
- absl::Status s = xla::FromGrpcStatus (writer->Finish ());
135
- promise->Set (absl::InternalError (absl::StrCat (
136
- " Failed to write all host buffer chunks, Finish() returned: " ,
137
- s.ToString ())));
138
- return ;
139
- }
140
- }
141
-
142
- VLOG (3 ) << " GrpcClientHostBufferStore::Store done "
143
- << metadata.ShortDebugString ();
144
- promise->Set (xla::FromGrpcStatus (writer->Finish ()));
103
+ work_queue_->Schedule ([this , reservation = std::move (reservation), handle,
104
+ promise = std::move (promise).ToShared (), data,
105
+ flow]() mutable -> void {
106
+ auto span = flow.Span <XFlowHelper::kRecv >();
107
+ GrpcHostBufferStoreMetadata metadata;
108
+ metadata.set_session_id (session_id_);
109
+ metadata.set_handle (handle);
110
+ metadata.set_buffer_size (data.size ());
111
+ VLOG (3 ) << " GrpcClientHostBufferStore::Store start "
112
+ << metadata.ShortDebugString ();
113
+
114
+ ::grpc::ClientContext context;
115
+ context.AddMetadata (" ifrt-proxy-grpc-host-buffer-store-metadata-bin" ,
116
+ metadata.SerializeAsString ());
117
+
118
+ GrpcHostBufferStoreResponse response;
119
+ auto writer = stub_->HostBufferStore (&context, &response);
120
+
121
+ {
122
+ tsl::profiler::TraceMe trace_me_send_data ([size = data.size ()]() {
123
+ return tsl::profiler::TraceMeEncode (
124
+ " GrpcClientHostBufferStore::StoreAsync_Send" , {{" size" , size}});
145
125
});
126
+ for (int64_t offset = 0 ; offset < data.size (); offset += kChunkSize ) {
127
+ GrpcHostBufferStoreRequest request;
128
+ SetDataFromStringView (request, data.substr (offset, kChunkSize ));
129
+ writer->Write (request);
130
+ }
131
+
132
+ if (!writer->WritesDone ()) {
133
+ absl::Status s = xla::FromGrpcStatus (writer->Finish ());
134
+ promise->Set (absl::InternalError (absl::StrCat (
135
+ " Failed to write all host buffer chunks, Finish() returned: " ,
136
+ s.ToString ())));
137
+ return ;
138
+ }
139
+ }
140
+
141
+ VLOG (3 ) << " GrpcClientHostBufferStore::Store done "
142
+ << metadata.ShortDebugString ();
143
+ promise->Set (xla::FromGrpcStatus (writer->Finish ()));
144
+ });
146
145
return std::move (future);
147
146
}
148
147
@@ -201,9 +200,7 @@ Future<absl::Cord> GrpcClientHostBufferStore::Lookup(uint64_t handle) {
201
200
202
201
auto reservation = ScopedAcquireSemaphore (lookup_throttler_);
203
202
work_queue_->Schedule ([this , reservation = std::move (reservation), handle,
204
- promise =
205
- std::make_shared<Future<absl::Cord>::Promise>(
206
- std::move (promise)),
203
+ promise = std::move (promise).ToShared (),
207
204
flow]() mutable -> void {
208
205
auto span = flow.Span <XFlowHelper::kRecv >();
209
206
GrpcHostBufferLookupRequest request;
0 commit comments