26 lines
468 B
V
26 lines
468 B
V
import sync
|
|
|
|
const (
|
|
signals_per_thread = 100000
|
|
)
|
|
|
|
fn send_signals(mut sem sync.Semaphore, mut sem_end sync.Semaphore) {
|
|
for _ in 0 .. signals_per_thread {
|
|
sem.post()
|
|
}
|
|
sem_end.post()
|
|
}
|
|
|
|
fn test_semaphores() {
|
|
mut sem := sync.new_semaphore()
|
|
mut sem_end := sync.new_semaphore()
|
|
go send_signals(mut sem, mut sem_end)
|
|
go send_signals(mut sem, mut sem_end)
|
|
for _ in 0 .. 2 * signals_per_thread {
|
|
sem.wait()
|
|
}
|
|
sem_end.wait()
|
|
sem_end.wait()
|
|
assert true
|
|
}
|