File tree Expand file tree Collapse file tree 1 file changed +18
-3
lines changed
compiler/base/orchestrator/src Expand file tree Collapse file tree 1 file changed +18
-3
lines changed Original file line number Diff line number Diff line change @@ -893,7 +893,7 @@ pub struct Coordinator<B> {
893
893
stable : OnceCell < Container > ,
894
894
beta : OnceCell < Container > ,
895
895
nightly : OnceCell < Container > ,
896
- token : CancellationToken ,
896
+ token : CancelOnDrop ,
897
897
}
898
898
899
899
/// Runs things.
@@ -910,7 +910,7 @@ where
910
910
B : Backend ,
911
911
{
912
912
pub fn new ( limits : Arc < dyn ResourceLimits > , backend : B ) -> Self {
913
- let token = CancellationToken :: new ( ) ;
913
+ let token = CancelOnDrop ( CancellationToken :: new ( ) ) ;
914
914
915
915
Self {
916
916
limits,
@@ -1153,13 +1153,28 @@ where
1153
1153
container
1154
1154
. get_or_try_init ( || {
1155
1155
let limits = self . limits . clone ( ) ;
1156
- let token = self . token . clone ( ) ;
1156
+ let token = self . token . 0 . clone ( ) ;
1157
1157
Container :: new ( channel, limits, token, & self . backend )
1158
1158
} )
1159
1159
. await
1160
1160
}
1161
1161
}
1162
1162
1163
+ #[ derive( Debug , Default ) ]
1164
+ struct CancelOnDrop ( CancellationToken ) ;
1165
+
1166
+ impl CancelOnDrop {
1167
+ fn cancel ( & self ) {
1168
+ self . 0 . cancel ( ) ;
1169
+ }
1170
+ }
1171
+
1172
+ impl Drop for CancelOnDrop {
1173
+ fn drop ( & mut self ) {
1174
+ self . 0 . cancel ( ) ;
1175
+ }
1176
+ }
1177
+
1163
1178
#[ derive( Debug ) ]
1164
1179
struct Container {
1165
1180
permit : Box < dyn ContainerPermit > ,
You can’t perform that action at this time.
0 commit comments