Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit d08ddc4

Browse files
committedSep 27, 2024··
m
1 parent 0aca980 commit d08ddc4

File tree

2 files changed

+58
-20
lines changed

2 files changed

+58
-20
lines changed
 

‎DynamoDbEncryption/runtimes/rust/src/ddb.rs

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,14 @@
66
#![deny(clippy::all)]
77

88
use aws_config::Region;
9+
use std::sync::LazyLock;
10+
11+
static DAFNY_TOKIO_RUNTIME: LazyLock<tokio::runtime::Runtime> = LazyLock::new(|| {
12+
tokio::runtime::Builder::new_multi_thread()
13+
.enable_all()
14+
.build()
15+
.unwrap()
16+
});
917

1018
#[allow(non_snake_case)]
1119
impl crate::r#software::amazon::cryptography::services::dynamodb::internaldafny::_default {
@@ -19,11 +27,16 @@ impl crate::r#software::amazon::cryptography::services::dynamodb::internaldafny:
1927
dafny_runtime::dafny_runtime_conversions::unicode_chars_false::dafny_string_to_string(
2028
region,
2129
);
22-
let shared_config = tokio::task::block_in_place(|| {
23-
tokio::runtime::Handle::current().block_on(async {
24-
aws_config::load_defaults(aws_config::BehaviorVersion::v2024_03_28()).await
25-
})
26-
});
30+
let shared_config = match tokio::runtime::Handle::try_current() {
31+
Ok(curr) => tokio::task::block_in_place(|| {
32+
curr.block_on(async {
33+
aws_config::load_defaults(aws_config::BehaviorVersion::v2024_03_28()).await
34+
})
35+
}),
36+
Err(_) => DAFNY_TOKIO_RUNTIME.block_on(aws_config::load_defaults(
37+
aws_config::BehaviorVersion::v2024_03_28(),
38+
)),
39+
};
2740
let shared_config = shared_config
2841
.to_builder()
2942
.region(Region::new(region))
@@ -42,11 +55,16 @@ impl crate::r#software::amazon::cryptography::services::dynamodb::internaldafny:
4255
::std::rc::Rc<crate::r#software::amazon::cryptography::services::dynamodb::internaldafny::types::Error>
4356
>
4457
>{
45-
let shared_config = tokio::task::block_in_place(|| {
46-
tokio::runtime::Handle::current().block_on(async {
47-
aws_config::load_defaults(aws_config::BehaviorVersion::v2024_03_28()).await
48-
})
49-
});
58+
let shared_config = match tokio::runtime::Handle::try_current() {
59+
Ok(curr) => tokio::task::block_in_place(|| {
60+
curr.block_on(async {
61+
aws_config::load_defaults(aws_config::BehaviorVersion::v2024_03_28()).await
62+
})
63+
}),
64+
Err(_) => DAFNY_TOKIO_RUNTIME.block_on(aws_config::load_defaults(
65+
aws_config::BehaviorVersion::v2024_03_28(),
66+
)),
67+
};
5068
let inner = aws_sdk_dynamodb::Client::new(&shared_config);
5169
let client = crate::deps::com_amazonaws_dynamodb::client::Client { inner };
5270
let dafny_client = ::dafny_runtime::upcast_object()(::dafny_runtime::object::new(client));

‎DynamoDbEncryption/runtimes/rust/src/kms.rs

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,14 @@
66
#![deny(clippy::all)]
77

88
use aws_config::Region;
9+
use std::sync::LazyLock;
10+
11+
static DAFNY_TOKIO_RUNTIME: LazyLock<tokio::runtime::Runtime> = LazyLock::new(|| {
12+
tokio::runtime::Builder::new_multi_thread()
13+
.enable_all()
14+
.build()
15+
.unwrap()
16+
});
917

1018
impl crate::r#software::amazon::cryptography::services::kms::internaldafny::_default {
1119
#[allow(non_snake_case)]
@@ -14,11 +22,17 @@ impl crate::r#software::amazon::cryptography::services::kms::internaldafny::_def
1422
dafny_runtime::dafny_runtime_conversions::unicode_chars_false::dafny_string_to_string(
1523
region,
1624
);
17-
let shared_config = tokio::task::block_in_place(|| {
18-
tokio::runtime::Handle::current().block_on(async {
19-
aws_config::load_defaults(aws_config::BehaviorVersion::v2024_03_28()).await
20-
})
21-
});
25+
26+
let shared_config = match tokio::runtime::Handle::try_current() {
27+
Ok(curr) => tokio::task::block_in_place(|| {
28+
curr.block_on(async {
29+
aws_config::load_defaults(aws_config::BehaviorVersion::v2024_03_28()).await
30+
})
31+
}),
32+
Err(_) => DAFNY_TOKIO_RUNTIME.block_on(aws_config::load_defaults(
33+
aws_config::BehaviorVersion::v2024_03_28(),
34+
)),
35+
};
2236

2337
let shared_config = shared_config
2438
.to_builder()
@@ -34,11 +48,17 @@ impl crate::r#software::amazon::cryptography::services::kms::internaldafny::_def
3448

3549
#[allow(non_snake_case)]
3650
pub fn KMSClient() -> ::std::rc::Rc<crate::r#_Wrappers_Compile::Result<::dafny_runtime::Object<dyn crate::software::amazon::cryptography::services::kms::internaldafny::types::IKMSClient>, ::std::rc::Rc<crate::software::amazon::cryptography::services::kms::internaldafny::types::Error>>>{
37-
let shared_config = tokio::task::block_in_place(|| {
38-
tokio::runtime::Handle::current().block_on(async {
39-
aws_config::load_defaults(aws_config::BehaviorVersion::v2024_03_28()).await
40-
})
41-
});
51+
let shared_config = match tokio::runtime::Handle::try_current() {
52+
Ok(curr) => tokio::task::block_in_place(|| {
53+
curr.block_on(async {
54+
aws_config::load_defaults(aws_config::BehaviorVersion::v2024_03_28()).await
55+
})
56+
}),
57+
Err(_) => DAFNY_TOKIO_RUNTIME.block_on(aws_config::load_defaults(
58+
aws_config::BehaviorVersion::v2024_03_28(),
59+
)),
60+
};
61+
4262
let inner = aws_sdk_kms::Client::new(&shared_config);
4363
let client = crate::deps::com_amazonaws_kms::client::Client { inner };
4464
let dafny_client = ::dafny_runtime::upcast_object()(::dafny_runtime::object::new(client));

0 commit comments

Comments
 (0)
Please sign in to comment.