Skip to content

Commit 8c9a24a

Browse files
committed
removing mio
1 parent 5b290df commit 8c9a24a

File tree

4 files changed

+31
-177
lines changed

4 files changed

+31
-177
lines changed

Cargo.lock

Lines changed: 0 additions & 159 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ chrono = "0.4"
2525
cfg-if = "1"
2626
derive_builder = "0.13"
2727
futures = "0.3"
28-
futures-locks = "0.7"
2928
prost = "0.12"
3029
prost-types = "0.12"
3130
reqwest = { version = "0.11", default-features = false, features = ["json", "rustls-tls"] }
@@ -43,5 +42,8 @@ tokio = { version = "1", features = ["full"], optional = true }
4342
async-std = { version = "1", features = ["default"], optional = true }
4443

4544
[build-dependencies]
46-
reqwest = { version = "0.11", features = ["blocking"] }
45+
reqwest = { version = "0.11", default-features = false, features = ["rustls-tls"] }
4746
tonic-build = "0.10"
47+
cfg-if = "1.0.0"
48+
tokio = { version = "1", features = ["full"], optional = true }
49+
async-std = { version = "1", features = ["default"], optional = true }

build.rs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,23 @@ use std::{
77

88
fn main() -> Result<(), Box<dyn Error>> {
99
// Skip building online from docs.rs
10-
if std::env::var_os("DOCS_RS").is_some() {
11-
} else {
10+
if std::env::var_os("DOCS_RS").is_some() {} else {
1211
// Retrieve a live version of the reports.proto file
1312
let proto_url = "https://usage-reporting.api.apollographql.com/proto/reports.proto";
14-
let response = reqwest::blocking::get(proto_url)?;
15-
let mut content = response.text()?;
13+
let fut = reqwest::get(proto_url);
14+
15+
cfg_if::cfg_if! {
16+
if #[cfg(feature = "tokio-comp")] {
17+
let rt = tokio::runtime::Runtime::new().unwrap();
18+
let response = rt.block_on(fut)?;
19+
let mut content = rt.block_on(response.text())?;
20+
} else if #[cfg(feature = "async-std-comp")] {
21+
let response = async_std::task::block_on(fut)?;
22+
let mut content = async_std::task::block_on(response.text())?;
23+
} else {
24+
compile_error!("tokio-comp or async-std-comp features required");
25+
}
26+
}
1627

1728
// Process the retrieved content to:
1829
// - Insert a package Report; line after the import lines (currently only one) and before the first message definition

src/lib.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ use runtime::spawn;
4040
#[macro_use]
4141
extern crate tracing;
4242

43-
use futures_locks::RwLock;
43+
use std::sync::RwLock;
4444
use std::collections::HashMap;
4545
use std::sync::Arc;
4646

@@ -194,7 +194,7 @@ impl Extension for ApolloTracingExtension {
194194
.map(|x| x.as_str())
195195
.unwrap_or("no_name");
196196
let query_type = format!("# {name}\n {query}", name = name, query = result);
197-
*self.operation_name.write().await = query_type;
197+
*self.operation_name.write().unwrap() = query_type;
198198
}
199199
Ok(document)
200200
}
@@ -267,12 +267,12 @@ impl Extension for ApolloTracingExtension {
267267
seconds: inner.start_time.timestamp(),
268268
});
269269

270-
let root_node = self.root_node.read().await;
270+
let root_node = self.root_node.read().unwrap();
271271
trace.root = Some(root_node.clone());
272272

273273
let mut sender = self.report.sender();
274274

275-
let operation_name = self.operation_name.read().await.clone();
275+
let operation_name = self.operation_name.read().unwrap().clone();
276276

277277
let _handle = spawn(async move {
278278
if let Err(e) = sender.send((operation_name, trace)).await {
@@ -325,7 +325,7 @@ impl Extension for ApolloTracingExtension {
325325
};
326326

327327
let node = Arc::new(RwLock::new(node));
328-
self.nodes.write().await.insert(path, node.clone());
328+
self.nodes.write().unwrap().insert(path, node.clone());
329329
let parent_node = path_node.parent.map(|x| x.to_string_vec().join("."));
330330
// Use the path to create a new node
331331
// https://github.com/apollographql/apollo-server/blob/291c17e255122d4733b23177500188d68fac55ce/packages/apollo-server-core/src/plugin/traceTreeBuilder.ts
@@ -351,13 +351,13 @@ impl Extension for ApolloTracingExtension {
351351
..Default::default()
352352
};
353353

354-
node.write().await.error = vec![error];
354+
node.write().unwrap().error = vec![error];
355355
Err(e)
356356
}
357357
};
358358
let end_time = Utc::now() - self.inner.lock().await.start_time;
359359

360-
node.write().await.end_time = match end_time
360+
node.write().unwrap().end_time = match end_time
361361
.num_nanoseconds()
362362
.and_then(|x| u64::try_from(x).ok())
363363
{
@@ -371,19 +371,19 @@ impl Extension for ApolloTracingExtension {
371371

372372
match parent_node {
373373
None => {
374-
let mut root_node = self.root_node.write().await;
374+
let mut root_node = self.root_node.write().unwrap();
375375
let child = &mut root_node.child;
376-
let node = node.read().await;
376+
let node = node.read().unwrap();
377377
// Can't copy or pass a ref to Protobuf
378378
// So we clone
379379
child.push(node.clone());
380380
}
381381
Some(parent) => {
382-
let nodes = self.nodes.read().await;
382+
let nodes = self.nodes.read().unwrap();
383383
let node_read = nodes.get(&parent).unwrap();
384-
let mut parent = node_read.write().await;
384+
let mut parent = node_read.write().unwrap();
385385
let child = &mut parent.child;
386-
let node = node.read().await;
386+
let node = node.read().unwrap();
387387
// Can't copy or pass a ref to Protobuf
388388
// So we clone
389389
child.push(node.clone());

0 commit comments

Comments
 (0)