aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/009-delayloop.patch
blob: a2a07975016833a1b67392b9d4ff3cf3706d0626 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
by Kirby Zhou < kirbyzhou \x40 sohu-rd.com >
using sched_yield to schedule other threads, so multiple iperf can run simultaneously
using usleep with delay-loop between 2 package is long than 1.25ms.

Upstream-Status: Inappropriate [not author]

--- iperf-2.0.4-4/compat/delay.cpp	2009-07-06 12:02:24.166276642 +0200
+++ iperf-2.0.4/compat/delay.cpp	2009-07-06 12:01:33.858384005 +0200
@@ -69,6 +69,13 @@ void delay_loop( unsigned long usec ) {
 
     Timestamp now;
     while ( now.before( end ) ) {
+       long diff = end.subUsec(now);
+       if (diff >= 1250) {
+               usleep(0);
+       }
+       if (diff >= 2) {
+               sched_yield();
+       }
         now.setnow();
     }
 }