@@ -42,7 +42,6 @@ impl RouteGuideImpl {
42
42
impl RouteGuide for RouteGuideImpl {
43
43
fn get_feature (
44
44
& self ,
45
- _o : ServerHandlerContext ,
46
45
req : ServerRequestSingle < Point > ,
47
46
resp : ServerResponseUnarySink < Feature > ,
48
47
) -> grpc:: Result < ( ) > {
@@ -60,13 +59,13 @@ impl RouteGuide for RouteGuideImpl {
60
59
61
60
fn list_features (
62
61
& self ,
63
- o : ServerHandlerContext ,
64
62
mut req : ServerRequestSingle < Rectangle > ,
65
63
mut resp : ServerResponseSink < Feature > ,
66
64
) -> grpc:: Result < ( ) > {
65
+ let loop_handle = req. loop_handle ( ) ;
67
66
let req = req. take_message ( ) ;
68
67
let saved_features = self . saved_features . clone ( ) ;
69
- o . spawn ( async move {
68
+ loop_handle . spawn ( async move {
70
69
for feature in & saved_features[ ..] {
71
70
if in_range ( feature. get_location ( ) , & req) {
72
71
resp. ready ( ) . await ?;
@@ -80,17 +79,18 @@ impl RouteGuide for RouteGuideImpl {
80
79
81
80
fn record_route (
82
81
& self ,
83
- o : ServerHandlerContext ,
84
82
req : ServerRequest < Point > ,
85
83
resp : ServerResponseUnarySink < RouteSummary > ,
86
84
) -> grpc:: Result < ( ) > {
87
85
let start_time = Instant :: now ( ) ;
88
86
89
87
let saved_features = self . saved_features . clone ( ) ;
90
88
89
+ let loop_handle = req. loop_handle ( ) ;
90
+
91
91
let mut stream = req. into_stream ( ) ;
92
92
93
- o . spawn ( async move {
93
+ loop_handle . spawn ( async move {
94
94
struct State {
95
95
point_count : u32 ,
96
96
feature_count : u32 ,
@@ -133,15 +133,16 @@ impl RouteGuide for RouteGuideImpl {
133
133
134
134
fn route_chat (
135
135
& self ,
136
- o : ServerHandlerContext ,
137
136
req : ServerRequest < RouteNote > ,
138
137
mut resp : ServerResponseSink < RouteNote > ,
139
138
) -> grpc:: Result < ( ) > {
140
139
let route_notes_map = self . route_notes . clone ( ) ;
141
140
141
+ let loop_handle = req. loop_handle ( ) ;
142
+
142
143
let mut req = req. into_stream ( ) ;
143
144
144
- o . spawn ( async move {
145
+ loop_handle . spawn ( async move {
145
146
loop {
146
147
// Wait until resp is writable
147
148
resp. ready ( ) . await ?;
0 commit comments