Skip to content

Commit

Permalink
improve test output
Browse files Browse the repository at this point in the history
  • Loading branch information
beepster4096 committed Nov 4, 2022
1 parent a3a800e commit 6a252a9
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 71 deletions.
32 changes: 16 additions & 16 deletions tests/pass/concurrency/windows_condvar_shared.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,12 @@ fn all_shared() {
let mut handles = Vec::with_capacity(10);

// waiters
for _ in 0..5 {
for i in 0..5 {
handles.push(thread::spawn(move || {
unsafe {
AcquireSRWLockShared(lock_ptr.0);
}
println!("waiter locked");
println!("exclusive waiter {i} locked");

let r = unsafe {
SleepConditionVariableSRW(
Expand All @@ -59,28 +59,28 @@ fn all_shared() {
};
assert_ne!(r, 0);

println!("reacquired lock");
println!("exclusive waiter {i} reacquired lock");
}));
}

// ensures each waiter is waiting by this point
thread::yield_now();

// readers
for _ in 0..5 {
for i in 0..5 {
handles.push(thread::spawn(move || {
unsafe {
AcquireSRWLockShared(lock_ptr.0);
}
println!("reader locked");
println!("reader {i} locked");

// switch to next reader or main thread
thread::yield_now();

unsafe {
ReleaseSRWLockShared(lock_ptr.0);
}
println!("reader unlocked");
println!("reader {i} unlocked");
}));
}

Expand All @@ -107,12 +107,12 @@ fn shared_sleep_and_exclusive_lock() {
let condvar_ptr = SendPtr(&mut condvar);

let mut waiters = Vec::with_capacity(5);
for _ in 0..5 {
for i in 0..5 {
waiters.push(thread::spawn(move || {
unsafe {
AcquireSRWLockShared(lock_ptr.0);
}
println!("waiter locked");
println!("shared waiter {i} locked");

let r = unsafe {
SleepConditionVariableSRW(
Expand All @@ -124,7 +124,7 @@ fn shared_sleep_and_exclusive_lock() {
};
assert_ne!(r, 0);

println!("reacquired lock");
println!("shared waiter {i} reacquired lock");
}));
}

Expand Down Expand Up @@ -164,43 +164,43 @@ fn exclusive_sleep_and_shared_lock() {
let condvar_ptr = SendPtr(&mut condvar);

let mut handles = Vec::with_capacity(10);
for _ in 0..5 {
for i in 0..5 {
handles.push(thread::spawn(move || {
unsafe {
AcquireSRWLockExclusive(lock_ptr.0);
}

println!("waiter locked");
println!("exclusive waiter {i} locked");

let r = unsafe { SleepConditionVariableSRW(condvar_ptr.0, lock_ptr.0, INFINITE, 0) };
assert_ne!(r, 0);

println!("reacquired lock");
println!("exclusive waiter {i} reacquired lock");

// switch to next waiter or main thread
thread::yield_now();

unsafe {
ReleaseSRWLockExclusive(lock_ptr.0);
}
println!("waiter unlocked");
println!("exclusive waiter {i} unlocked");
}));
}

for _ in 0..5 {
for i in 0..5 {
handles.push(thread::spawn(move || {
unsafe {
AcquireSRWLockShared(lock_ptr.0);
}
println!("reader locked");
println!("reader {i} locked");

// switch to next reader or main thread
thread::yield_now();

unsafe {
ReleaseSRWLockShared(lock_ptr.0);
}
println!("reader unlocked");
println!("reader {i} unlocked");
}));
}

Expand Down
110 changes: 55 additions & 55 deletions tests/pass/concurrency/windows_condvar_shared.stdout
Original file line number Diff line number Diff line change
@@ -1,60 +1,60 @@
all_shared
waiter locked
waiter locked
waiter locked
waiter locked
waiter locked
reader locked
reader locked
reader locked
reader locked
reader locked
reacquired lock
reacquired lock
reacquired lock
reacquired lock
reacquired lock
reader unlocked
reader unlocked
reader unlocked
reader unlocked
reader unlocked
exclusive waiter 0 locked
exclusive waiter 1 locked
exclusive waiter 2 locked
exclusive waiter 3 locked
exclusive waiter 4 locked
reader 0 locked
reader 1 locked
reader 2 locked
reader 3 locked
reader 4 locked
exclusive waiter 0 reacquired lock
exclusive waiter 1 reacquired lock
exclusive waiter 2 reacquired lock
exclusive waiter 3 reacquired lock
exclusive waiter 4 reacquired lock
reader 0 unlocked
reader 1 unlocked
reader 2 unlocked
reader 3 unlocked
reader 4 unlocked
shared_sleep_and_exclusive_lock
waiter locked
waiter locked
waiter locked
waiter locked
waiter locked
shared waiter 0 locked
shared waiter 1 locked
shared waiter 2 locked
shared waiter 3 locked
shared waiter 4 locked
main locked
main unlocked
reacquired lock
reacquired lock
reacquired lock
reacquired lock
reacquired lock
shared waiter 0 reacquired lock
shared waiter 1 reacquired lock
shared waiter 2 reacquired lock
shared waiter 3 reacquired lock
shared waiter 4 reacquired lock
exclusive_sleep_and_shared_lock
waiter locked
waiter locked
waiter locked
waiter locked
waiter locked
reader locked
reader locked
reader locked
reader locked
reader locked
reader unlocked
reader unlocked
reader unlocked
reader unlocked
reader unlocked
reacquired lock
waiter unlocked
reacquired lock
waiter unlocked
reacquired lock
waiter unlocked
reacquired lock
waiter unlocked
reacquired lock
waiter unlocked
exclusive waiter 0 locked
exclusive waiter 1 locked
exclusive waiter 2 locked
exclusive waiter 3 locked
exclusive waiter 4 locked
reader 0 locked
reader 1 locked
reader 2 locked
reader 3 locked
reader 4 locked
reader 0 unlocked
reader 1 unlocked
reader 2 unlocked
reader 3 unlocked
reader 4 unlocked
exclusive waiter 0 reacquired lock
exclusive waiter 0 unlocked
exclusive waiter 1 reacquired lock
exclusive waiter 1 unlocked
exclusive waiter 2 reacquired lock
exclusive waiter 2 unlocked
exclusive waiter 3 reacquired lock
exclusive waiter 3 unlocked
exclusive waiter 4 reacquired lock
exclusive waiter 4 unlocked

0 comments on commit 6a252a9

Please sign in to comment.