@@ -7,7 +7,6 @@ use pet_conda::Conda;
7
7
use pet_conda:: CondaLocator ;
8
8
use pet_core:: {
9
9
os_environment:: { Environment , EnvironmentApi } ,
10
- reporter:: Reporter ,
11
10
Configuration , Locator ,
12
11
} ;
13
12
use pet_jsonrpc:: {
@@ -32,7 +31,6 @@ use std::{
32
31
use crate :: { find:: find_and_report_envs, locators:: create_locators} ;
33
32
34
33
pub struct Context {
35
- reporter : Arc < dyn Reporter > ,
36
34
configuration : RwLock < Configuration > ,
37
35
locators : Arc < Vec < Arc < dyn Locator > > > ,
38
36
conda_locator : Arc < Conda > ,
@@ -48,12 +46,9 @@ pub fn start_jsonrpc_server() {
48
46
// These are globals for the the lifetime of the server.
49
47
// Hence passed around as Arcs via the context.
50
48
let environment = EnvironmentApi :: new ( ) ;
51
- let jsonrpc_reporter = Arc :: new ( jsonrpc:: create_reporter ( ) ) ;
52
- let reporter = Arc :: new ( CacheReporter :: new ( jsonrpc_reporter. clone ( ) ) ) ;
53
49
let conda_locator = Arc :: new ( Conda :: from ( & environment) ) ;
54
50
let poetry_locator = Arc :: new ( Poetry :: from ( & environment) ) ;
55
51
let context = Context {
56
- reporter,
57
52
locators : create_locators ( conda_locator. clone ( ) , poetry_locator. clone ( ) , & environment) ,
58
53
conda_locator,
59
54
poetry_locator,
@@ -123,9 +118,11 @@ pub fn handle_refresh(context: Arc<Context>, id: u32, _params: Value) {
123
118
// Start in a new thread, we can have multiple requests.
124
119
thread:: spawn ( move || {
125
120
let config = context. configuration . read ( ) . unwrap ( ) . clone ( ) ;
121
+ let reporter = Arc :: new ( CacheReporter :: new ( Arc :: new ( jsonrpc:: create_reporter ( ) ) ) ) ;
122
+
126
123
trace ! ( "Start refreshing environments, config: {:?}" , config) ;
127
124
let summary = find_and_report_envs (
128
- context . reporter . as_ref ( ) ,
125
+ reporter. as_ref ( ) ,
129
126
config,
130
127
& context. locators ,
131
128
context. os_environment . deref ( ) ,
@@ -167,9 +164,9 @@ pub fn handle_refresh(context: Arc<Context>, id: u32, _params: Value) {
167
164
. unwrap ( )
168
165
. conda_executable
169
166
. clone ( ) ;
170
- let reporter = context . reporter . clone ( ) ;
167
+ let reporter_ref = reporter. clone ( ) ;
171
168
thread:: spawn ( move || {
172
- conda_locator. find_and_report_missing_envs ( reporter . as_ref ( ) , conda_executable) ;
169
+ conda_locator. find_and_report_missing_envs ( reporter_ref . as_ref ( ) , conda_executable) ;
173
170
Some ( ( ) )
174
171
} ) ;
175
172
@@ -184,9 +181,10 @@ pub fn handle_refresh(context: Arc<Context>, id: u32, _params: Value) {
184
181
. unwrap ( )
185
182
. poetry_executable
186
183
. clone ( ) ;
187
- let reporter = context . reporter . clone ( ) ;
184
+ let reporter_ref = reporter. clone ( ) ;
188
185
thread:: spawn ( move || {
189
- poetry_locator. find_and_report_missing_envs ( reporter. as_ref ( ) , poetry_executable) ;
186
+ poetry_locator
187
+ . find_and_report_missing_envs ( reporter_ref. as_ref ( ) , poetry_executable) ;
190
188
Some ( ( ) )
191
189
} ) ;
192
190
}
@@ -212,8 +210,9 @@ pub fn handle_resolve(context: Arc<Context>, id: u32, params: Value) {
212
210
{
213
211
if let Some ( resolved) = result. resolved {
214
212
// Gather telemetry of this resolved env and see what we got wrong.
213
+ let jsonrpc_reporter = jsonrpc:: create_reporter ( ) ;
215
214
let _ = report_inaccuracies_identified_after_resolving (
216
- context . reporter . as_ref ( ) ,
215
+ & jsonrpc_reporter ,
217
216
& result. discovered ,
218
217
& resolved,
219
218
) ;
0 commit comments