Skip to content

Commit 61c2f6f

Browse files
committed
Use tokio::task::coop::consume_budget instead of manually yielding
1 parent cbbe8cc commit 61c2f6f

File tree

1 file changed

+6
-21
lines changed

1 file changed

+6
-21
lines changed

crates/syn2mas/src/migration.rs

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -273,14 +273,9 @@ async fn migrate_users(
273273
let mut user_buffer = MasWriteBuffer::new(&mas, MasWriter::write_users);
274274
let mut password_buffer = MasWriteBuffer::new(&mas, MasWriter::write_passwords);
275275

276-
let mut i = 0;
277276
while let Ok(user) = rx.recv_async().await {
278-
// Force yielding to the scheduler every once in a while, else we'll have long
279-
// tick times
280-
i += 1;
281-
if i % 128 == 0 {
282-
tokio::task::yield_now().await;
283-
}
277+
// Consume some coop budget to give it a chance to yield
278+
tokio::task::coop::consume_budget().await;
284279

285280
// Handling an edge case: some AS users may have invalid localparts containing
286281
// extra `:` characters. These users are ignored and a warning is logged.
@@ -622,14 +617,9 @@ async fn migrate_devices(
622617
async move {
623618
let mut write_buffer = MasWriteBuffer::new(&mas, MasWriter::write_compat_sessions);
624619

625-
let mut i = 0;
626620
while let Ok(device) = rx.recv_async().await {
627-
// Force yielding to the scheduler every once in a while, else we'll have long
628-
// tick times
629-
i += 1;
630-
if i % 128 == 0 {
631-
tokio::task::yield_now().await;
632-
}
621+
// Consume some coop budget to give it a chance to yield
622+
tokio::task::coop::consume_budget().await;
633623

634624
let SynapseDevice {
635625
user_id: synapse_user_id,
@@ -783,14 +773,9 @@ async fn migrate_unrefreshable_access_tokens(
783773
let mut deviceless_session_write_buffer =
784774
MasWriteBuffer::new(&mas, MasWriter::write_compat_sessions);
785775

786-
let mut i = 0;
787776
while let Ok(token) = rx.recv_async().await {
788-
// Force yielding to the scheduler every once in a while, else we'll have long
789-
// tick times
790-
i += 1;
791-
if i % 128 == 0 {
792-
tokio::task::yield_now().await;
793-
}
777+
// Consume some coop budget to give it a chance to yield
778+
tokio::task::coop::consume_budget().await;
794779

795780
let SynapseAccessToken {
796781
user_id: synapse_user_id,

0 commit comments

Comments
 (0)