File: timeout.awk

package info (click to toggle)
gawk 1%3A5.3.2-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 24,120 kB
  • sloc: ansic: 56,743; awk: 14,966; sh: 6,985; yacc: 6,820; makefile: 3,144; sed: 119; python: 31; csh: 6
file content (26 lines) | stat: -rw-r--r-- 558 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
BEGIN {
	cmd = "echo hello; sleep 1; echo goodbye"

	print "With timeouts"
	PROCINFO[cmd, "READ_TIMEOUT"] = 400
	while ((rc = (cmd | getline x)) > 0)
		print x
	if (rc < 0)
		print rc, (PROCINFO["errno"] != 0), (ERRNO != "")
	print (close(cmd) != 0)

	PROCINFO[cmd, "RETRY"]
	print ""
	print "With timeouts and retries"
	while (((rc = (cmd | getline x)) > 0) || (rc == -2)) {
		if (rc > 0) {
			print x
			n = 0
		}
		else
			print ++n, "timed out; trying again"
	}
	if (rc < 0)
		print rc, (PROCINFO["errno"] != 0), (ERRNO != "")
	print (close(cmd) != 0)
}