Skip to content

Commit d0ad507

Browse files
committed
Eliminating locking and improve safety with Pagers, Pollers
Resolves #3294
1 parent 2d909ca commit d0ad507

File tree

13 files changed

+525
-525
lines changed

13 files changed

+525
-525
lines changed

Cargo.lock

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

sdk/core/azure_core/src/http/pager.rs

Lines changed: 460 additions & 486 deletions
Large diffs are not rendered by default.

sdk/core/azure_core/src/lib.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,26 @@ pub mod tracing {
3636
#[cfg(feature = "xml")]
3737
pub use typespec_client_core::xml;
3838

39+
#[cfg(not(target_arch = "wasm32"))]
40+
mod conditional_send {
41+
/// Conditionally implements [`Send`] based on the `target_arch`.
42+
///
43+
/// This implementation requires `Send`.
44+
pub trait ConditionalSend: Send {}
45+
46+
impl<T> ConditionalSend for T where T: Send {}
47+
}
48+
49+
#[cfg(target_arch = "wasm32")]
50+
mod conditional_send {
51+
/// Conditionally implements [`Send`] based on the `target_arch`.
52+
///
53+
/// This implementation does not require `Send`.
54+
pub trait ConditionalSend {}
55+
56+
impl<T> ConditionalSend for T {}
57+
}
58+
3959
mod private {
4060
pub trait Sealed {}
4161
}

sdk/keyvault/azure_security_keyvault_certificates/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ include-file.workspace = true
3535
openssl.workspace = true
3636
rand.workspace = true
3737
tokio.workspace = true
38+
tracing.workspace = true
3839

3940
[build-dependencies]
4041
rustc_version.workspace = true

sdk/keyvault/azure_security_keyvault_certificates/src/generated/clients/certificate_client.rs

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

sdk/keyvault/azure_security_keyvault_certificates/src/generated/models/method_options.rs

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

sdk/keyvault/azure_security_keyvault_certificates/tests/certificate_client.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ async fn list_certificates(ctx: TestContext) -> Result<()> {
219219
.await?;
220220

221221
// List certificates.
222-
let mut pager = client.list_certificate_properties(None)?.into_stream();
222+
let mut pager = client.list_certificate_properties(None)?;
223223
while let Some(certificate) = pager.try_next().await? {
224224
// Get the certificate name from the ID.
225225
let name = certificate.resource_id()?.name;
@@ -268,11 +268,11 @@ async fn purge_certificate(ctx: TestContext) -> Result<()> {
268268
loop {
269269
match client.purge_deleted_certificate(NAME.as_ref(), None).await {
270270
Ok(_) => {
271-
println!("{NAME} has been purged");
271+
tracing::debug!("{NAME} has been purged");
272272
break;
273273
}
274274
Err(err) if matches!(err.http_status(), Some(StatusCode::Conflict)) => {
275-
println!(
275+
tracing::debug!(
276276
"Retrying in {} seconds",
277277
retry.duration().unwrap_or_default().as_secs_f32()
278278
);

sdk/keyvault/azure_security_keyvault_keys/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ rand_chacha.workspace = true
3636
reqwest.workspace = true
3737
sha2.workspace = true
3838
tokio.workspace = true
39+
tracing.workspace = true
3940

4041
[build-dependencies]
4142
rustc_version.workspace = true

sdk/keyvault/azure_security_keyvault_keys/tests/key_client.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,11 +196,11 @@ async fn purge_key(ctx: TestContext) -> Result<()> {
196196
loop {
197197
match client.purge_deleted_key(name.as_ref(), None).await {
198198
Ok(_) => {
199-
println!("{name} has been purged");
199+
tracing::debug!("{name} has been purged");
200200
break;
201201
}
202202
Err(err) if matches!(err.http_status(), Some(StatusCode::Conflict)) => {
203-
println!(
203+
tracing::debug!(
204204
"Retrying in {} seconds",
205205
retry.duration().unwrap_or_default().as_secs_f32()
206206
);

sdk/keyvault/azure_security_keyvault_secrets/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ azure_security_keyvault_test = { path = "../azure_security_keyvault_test" }
3434
include-file.workspace = true
3535
rand.workspace = true
3636
tokio.workspace = true
37+
tracing.workspace = true
3738

3839
[build-dependencies]
3940
rustc_version.workspace = true

0 commit comments

Comments
 (0)