@@ -95,34 +95,36 @@ pub fn start_background_repository_stats_updater(context: &dyn Context) -> Resul
95
95
Ok ( ( ) )
96
96
}
97
97
98
- pub fn start_daemon < C : Context + Send + Clone + ' static > (
98
+ pub fn start_daemon < C : Context + Send + Sync + ' static > (
99
99
context : C ,
100
100
enable_registry_watcher : bool ,
101
101
) -> Result < ( ) , Error > {
102
+ let context = Arc :: new ( context) ;
103
+
102
104
// Start the web server before doing anything more expensive
103
105
// Please check with an administrator before changing this (see #1172 for context).
104
106
info ! ( "Starting web server" ) ;
105
107
let webserver_thread = thread:: spawn ( {
106
108
let context = context. clone ( ) ;
107
- move || start_web_server ( None , & context)
109
+ move || start_web_server ( None , & * context)
108
110
} ) ;
109
111
110
112
if enable_registry_watcher {
111
113
// check new crates every minute
112
- start_registry_watcher ( & context) ?;
114
+ start_registry_watcher ( & * context) ?;
113
115
}
114
116
115
117
// build new crates every minute
116
118
let build_queue = context. build_queue ( ) ?;
117
- let rustwide_builder = RustwideBuilder :: init ( & context) ?;
119
+ let rustwide_builder = RustwideBuilder :: init ( & * context) ?;
118
120
thread:: Builder :: new ( )
119
121
. name ( "build queue reader" . to_string ( ) )
120
122
. spawn ( move || {
121
123
queue_builder ( rustwide_builder, build_queue) . unwrap ( ) ;
122
124
} )
123
125
. unwrap ( ) ;
124
126
125
- start_background_repository_stats_updater ( & context) ?;
127
+ start_background_repository_stats_updater ( & * context) ?;
126
128
127
129
// NOTE: if a error occurred earlier in `start_daemon`, the server will _not_ be joined -
128
130
// instead it will get killed when the process exits.
0 commit comments