@@ -674,11 +674,11 @@ fn apply_configure_options(
674674 workspace_directories : Option < Vec < PathBuf > > ,
675675 environment_directories : Option < Vec < PathBuf > > ,
676676) -> Result < ( ) , String > {
677- // Phase A — Prepare: serialize concurrent configures, then briefly take
678- // the write lock to snapshot the current config and compute the next
679- // one. The write lock is released before invoking any locator so that
680- // refresh threads (which take a `configuration.read()`) are not
681- // blocked by per-locator I/O. See #461.
677+ // Phase A — Prepare: serialize concurrent configures, then briefly
678+ // take a read lock to snapshot the current config and compute the next
679+ // one. No lock is held while locators are invoked, so refresh threads
680+ // (which take `configuration.read()`) are not blocked by per-locator
681+ // I/O. See #461.
682682 let _configure_guard = configure_in_progress. lock ( ) . unwrap ( ) ;
683683
684684 let ( previous_config, mut next_config, next_generation) = {
@@ -2765,7 +2765,7 @@ mod tests {
27652765 // on the immediately following Exit, and once a configure starts
27662766 // (Enter then Exit pair), the same id must continue running until
27672767 // it has done all its work.
2768- for chunk in events. chunks ( 2 ) {
2768+ for chunk in events. chunks_exact ( 2 ) {
27692769 match ( chunk[ 0 ] , chunk[ 1 ] ) {
27702770 ( Event :: Enter ( a) , Event :: Exit ( b) ) => assert_eq ! ( a, b) ,
27712771 other => panic ! ( "unexpected event pair: {other:?}" ) ,
0 commit comments