@@ -46,7 +46,7 @@ impl ChangedPackages {
46
46
}
47
47
48
48
pub struct WatchClient {
49
- run : Run ,
49
+ run : Arc < Run > ,
50
50
watched_packages : HashSet < PackageName > ,
51
51
persistent_tasks_handle : Option < PersistentRunHandle > ,
52
52
connector : DaemonConnector ,
@@ -130,9 +130,11 @@ impl WatchClient {
130
130
execution_args : execution_args. clone ( ) ,
131
131
} ) ;
132
132
133
- let run = RunBuilder :: new ( new_base) ?
134
- . build ( & handler, telemetry. clone ( ) )
135
- . await ?;
133
+ let run = Arc :: new (
134
+ RunBuilder :: new ( new_base) ?
135
+ . build ( & handler, telemetry. clone ( ) )
136
+ . await ?,
137
+ ) ;
136
138
137
139
let watched_packages = run. get_relevant_packages ( ) ;
138
140
@@ -288,7 +290,7 @@ impl WatchClient {
288
290
let signal_handler = self . handler . clone ( ) ;
289
291
let telemetry = self . telemetry . clone ( ) ;
290
292
291
- let mut run = RunBuilder :: new ( new_base) ?
293
+ let run = RunBuilder :: new ( new_base) ?
292
294
. with_entrypoint_packages ( packages)
293
295
. hide_prelude ( )
294
296
. build ( & signal_handler, telemetry)
@@ -331,7 +333,8 @@ impl WatchClient {
331
333
self . run = RunBuilder :: new ( base. clone ( ) ) ?
332
334
. hide_prelude ( )
333
335
. build ( & self . handler , self . telemetry . clone ( ) )
334
- . await ?;
336
+ . await ?
337
+ . into ( ) ;
335
338
336
339
self . watched_packages = self . run . get_relevant_packages ( ) ;
337
340
@@ -357,7 +360,7 @@ impl WatchClient {
357
360
self . persistent_tasks_handle. is_none( ) ,
358
361
"persistent handle should be empty before creating a new one"
359
362
) ;
360
- let mut persistent_run = self . run . create_run_for_persistent_tasks ( ) ;
363
+ let persistent_run = self . run . create_run_for_persistent_tasks ( ) ;
361
364
let ui_sender = self . ui_sender . clone ( ) ;
362
365
// If we have persistent tasks, we run them on a separate thread
363
366
// since persistent tasks don't finish
@@ -369,7 +372,7 @@ impl WatchClient {
369
372
} ) ;
370
373
371
374
// But we still run the regular tasks blocking
372
- let mut non_persistent_run = self . run . create_run_without_persistent_tasks ( ) ;
375
+ let non_persistent_run = self . run . create_run_without_persistent_tasks ( ) ;
373
376
Ok ( non_persistent_run. run ( self . ui_sender . clone ( ) , true ) . await ?)
374
377
} else {
375
378
Ok ( self . run . run ( self . ui_sender . clone ( ) , true ) . await ?)
0 commit comments