File tree Expand file tree Collapse file tree 1 file changed +24
-10
lines changed Expand file tree Collapse file tree 1 file changed +24
-10
lines changed Original file line number Diff line number Diff line change @@ -414,16 +414,30 @@ EOF
414
414
# start daemon
415
415
daemon_start ${config} test
416
416
417
- # send 2 signals
418
- perf daemon signal --config ${config} --session test
419
- perf daemon signal --config ${config}
420
-
421
- # stop daemon
422
- daemon_exit ${config}
423
-
424
- # count is 2 perf.data for signals and 1 for perf record finished
425
- count=` ls ${base} /session-test/* perf.data* | wc -l`
426
- if [ ${count} -ne 3 ]; then
417
+ # send 2 signals then exit. Do this in a loop watching the number of
418
+ # files to avoid races. If the loop retries more than 600 times then
419
+ # give up.
420
+ local retries=0
421
+ local signals=0
422
+ local success=0
423
+ while [ ${retries} -lt 600 ] && [ ${success} -eq 0 ]; do
424
+ local files
425
+ files=` ls ${base} /session-test/* perf.data* 2> /dev/null | wc -l`
426
+ if [ ${signals} -eq 0 ]; then
427
+ perf daemon signal --config ${config} --session test
428
+ signals=1
429
+ elif [ ${signals} -eq 1 ] && [ $files -ge 1 ]; then
430
+ perf daemon signal --config ${config}
431
+ signals=2
432
+ elif [ ${signals} -eq 2 ] && [ $files -ge 2 ]; then
433
+ daemon_exit ${config}
434
+ signals=3
435
+ elif [ ${signals} -eq 3 ] && [ $files -ge 3 ]; then
436
+ success=1
437
+ fi
438
+ retries=$(( ${retries} + 1 ))
439
+ done
440
+ if [ ${success} -eq 0 ]; then
427
441
error=1
428
442
echo " FAILED: perf data no generated"
429
443
fi
You can’t perform that action at this time.
0 commit comments