@@ -273,9 +273,14 @@ 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 ;
276277 while let Ok ( user) = rx. recv_async ( ) . await {
277- // Force yielding to the scheduler, else we'll have long tick times
278- tokio:: task:: yield_now ( ) . 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+ }
279284
280285 // Handling an edge case: some AS users may have invalid localparts containing
281286 // extra `:` characters. These users are ignored and a warning is logged.
@@ -617,9 +622,14 @@ async fn migrate_devices(
617622 async move {
618623 let mut write_buffer = MasWriteBuffer :: new ( & mas, MasWriter :: write_compat_sessions) ;
619624
625+ let mut i = 0 ;
620626 while let Ok ( device) = rx. recv_async ( ) . await {
621- // Force yielding to the scheduler, else we'll have long tick times
622- tokio:: task:: yield_now ( ) . 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+ }
623633
624634 let SynapseDevice {
625635 user_id : synapse_user_id,
@@ -773,9 +783,14 @@ async fn migrate_unrefreshable_access_tokens(
773783 let mut deviceless_session_write_buffer =
774784 MasWriteBuffer :: new ( & mas, MasWriter :: write_compat_sessions) ;
775785
786+ let mut i = 0 ;
776787 while let Ok ( token) = rx. recv_async ( ) . await {
777- // Force yielding to the scheduler, else we'll have long tick times
778- tokio:: task:: yield_now ( ) . 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+ }
779794
780795 let SynapseAccessToken {
781796 user_id : synapse_user_id,
0 commit comments