GitHub

@@ -523,10 +523,8 @@ fn receiver_set_homogeneous() {

523523524524

let mut recvd1 = false;

525525

let mut recvd2 = false;

526-

for _ in 1..3 {

527-

if let SubSelectionResult::MessageReceived(received_id, received_data) =

528-

rx_set.select().unwrap().into_iter().next().unwrap()

529-

{

526+

for event in rx_set.select().unwrap() {

527+

if let SubSelectionResult::MessageReceived(received_id, received_data) = event {

530528

match received_id {

531529

id if id == rx1_id => {

532530

assert!(!recvd1, "i32 received twice");

@@ -568,10 +566,8 @@ fn receiver_set_heterogeneous() {

568566569567

let mut recvd1 = false;

570568

let mut recvd2 = false;

571-

for _ in 1..3 {

572-

if let SubSelectionResult::MessageReceived(received_id, received_data) =

573-

rx_set.select().unwrap().into_iter().next().unwrap()

574-

{

569+

for event in rx_set.select().unwrap() {

570+

if let SubSelectionResult::MessageReceived(received_id, received_data) = event {

575571

match received_id {

576572

id if id == rx1_id => {

577573

assert!(!recvd1, "i32 received twice");

@@ -634,31 +630,29 @@ fn receiver_set_homogeneous_blocking() {

634630635631

let mut recvd1 = false;

636632

let mut recvd2 = false;

637-

for _ in 1..3 {

638-

if let SubSelectionResult::MessageReceived(received_id, received_data) =

639-

rx_set.select().unwrap().into_iter().next().unwrap()

640-

{

641-

match received_id {

642-

id if id == rx1_id => {

643-

assert!(!recvd1, "1 received twice");

644-

let received_value: i32 = received_data.to().unwrap();

645-

assert_eq!(received_value, 1);

646-

recvd1 = true;

647-

},

648-

id if id == rx2_id => {

649-

assert!(!recvd2, "2 received twice");

650-

let received_value: i32 = received_data.to().unwrap();

651-

assert_eq!(received_value, 2);

652-

recvd2 = true;

653-

},

654-

_ => panic!("unexpected id"),

633+

while !recvd1 || !recvd2 {

634+

for event in rx_set.select().unwrap() {

635+

if let SubSelectionResult::MessageReceived(received_id, received_data) = event {

636+

match received_id {

637+

id if id == rx1_id => {

638+

assert!(!recvd1, "1 received twice");

639+

let received_value: i32 = received_data.to().unwrap();

640+

assert_eq!(received_value, 1);

641+

recvd1 = true;

642+

},

643+

id if id == rx2_id => {

644+

assert!(!recvd2, "2 received twice");

645+

let received_value: i32 = received_data.to().unwrap();

646+

assert_eq!(received_value, 2);

647+

recvd2 = true;

648+

},

649+

_ => panic!("unexpected id"),

650+

}

651+

} else {

652+

panic!("Unexpected SubSelectionResult");

655653

}

656-

} else {

657-

panic!("Unexpected SubSelectionResult");

658654

}

659655

}

660-

assert!(recvd1, "i32 was not received");

661-

assert!(recvd2, "String was not received");

662656

});

663657664658

let (bootstrap_sub_receiver, tx1): (SubReceiver<SubSender<i32>>, SubSender<i32>) =

@@ -694,31 +688,29 @@ fn receiver_set_heterogeneous_blocking() {

694688695689

let mut recvd1 = false;

696690

let mut recvd2 = false;

697-

for _ in 1..3 {

698-

if let SubSelectionResult::MessageReceived(received_id, received_data) =

699-

rx_set.select().unwrap().into_iter().next().unwrap()

700-

{

701-

match received_id {

702-

id if id == rx1_id => {

703-

assert!(!recvd1, "1 received twice");

704-

let received_value: i32 = received_data.to().unwrap();

705-

assert_eq!(received_value, 1);

706-

recvd1 = true;

707-

},

708-

id if id == rx2_id => {

709-

assert!(!recvd2, "2 received twice");

710-

let received_value: i32 = received_data.to().unwrap();

711-

assert_eq!(received_value, 2);

712-

recvd2 = true;

713-

},

714-

_ => panic!("unexpected id"),

691+

while !recvd1 || !recvd2 {

692+

for event in rx_set.select().unwrap() {

693+

if let SubSelectionResult::MessageReceived(received_id, received_data) = event {

694+

match received_id {

695+

id if id == rx1_id => {

696+

assert!(!recvd1, "1 received twice");

697+

let received_value: i32 = received_data.to().unwrap();

698+

assert_eq!(received_value, 1);

699+

recvd1 = true;

700+

},

701+

id if id == rx2_id => {

702+

assert!(!recvd2, "2 received twice");

703+

let received_value: i32 = received_data.to().unwrap();

704+

assert_eq!(received_value, 2);

705+

recvd2 = true;

706+

},

707+

_ => panic!("unexpected id"),

708+

}

709+

} else {

710+

panic!("Unexpected SubSelectionResult");

715711

}

716-

} else {

717-

panic!("Unexpected SubSelectionResult");

718712

}

719713

}

720-

assert!(recvd1, "i32 was not received");

721-

assert!(recvd2, "String was not received");

722714

});

723715724716

let (bootstrap_sub_receiver, tx1): (SubReceiver<SubSender<i32>>, SubSender<i32>) =

Read the original on github.com ↗