Commit b1deac8
committed
testdata: fix flaky goroutines test
The goroutines test had two races under thread-based scheduling:
1. "main 2" vs "sub 2": both printed around 100-200ms from start,
racing on loaded systems. Fixed by using channel synchronization
between main and sub() instead of relying on sleep timing.
2. "slept inside func pointer" vs "slept inside closure": both
goroutines launched by sleepFuncValue slept 1ms then printed,
with only a 1ms gap between launches. Fixed by waiting for each
goroutine to complete via a done channel before starting the next.
The test still exercises goroutine creation, function value calls,
closure captures, and channel communication.
Addresses tinygo-org/tinygo issue 4965.1 parent e1c94d4 commit b1deac8
1 file changed
Lines changed: 12 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
14 | 17 | | |
15 | 18 | | |
16 | 19 | | |
17 | | - | |
| 20 | + | |
18 | 21 | | |
19 | | - | |
| 22 | + | |
20 | 23 | | |
21 | 24 | | |
22 | 25 | | |
| |||
41 | 44 | | |
42 | 45 | | |
43 | 46 | | |
| 47 | + | |
44 | 48 | | |
45 | | - | |
| 49 | + | |
46 | 50 | | |
47 | 51 | | |
48 | 52 | | |
49 | 53 | | |
| 54 | + | |
50 | 55 | | |
51 | | - | |
52 | | - | |
| 56 | + | |
53 | 57 | | |
54 | 58 | | |
55 | 59 | | |
| |||
103 | 107 | | |
104 | 108 | | |
105 | 109 | | |
106 | | - | |
| 110 | + | |
| 111 | + | |
107 | 112 | | |
| 113 | + | |
108 | 114 | | |
109 | 115 | | |
110 | 116 | | |
| |||
0 commit comments