|
Packit Service |
f629e6 |
BEGIN {
|
|
Packit Service |
f629e6 |
cmd = "echo hello; sleep 1; echo goodbye"
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
print "With timeouts"
|
|
Packit Service |
f629e6 |
PROCINFO[cmd, "READ_TIMEOUT"] = 300
|
|
Packit Service |
f629e6 |
while ((rc = (cmd | getline x)) > 0)
|
|
Packit Service |
f629e6 |
print x
|
|
Packit Service |
f629e6 |
if (rc < 0)
|
|
Packit Service |
f629e6 |
print rc, (PROCINFO["errno"] != 0), (ERRNO != "")
|
|
Packit Service |
f629e6 |
print (close(cmd) != 0)
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
PROCINFO[cmd, "RETRY"]
|
|
Packit Service |
f629e6 |
print ""
|
|
Packit Service |
f629e6 |
print "With timeouts and retries"
|
|
Packit Service |
f629e6 |
while (((rc = (cmd | getline x)) > 0) || (rc == -2)) {
|
|
Packit Service |
f629e6 |
if (rc > 0) {
|
|
Packit Service |
f629e6 |
print x
|
|
Packit Service |
f629e6 |
n = 0
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
else
|
|
Packit Service |
f629e6 |
print ++n, "timed out; trying again"
|
|
Packit Service |
f629e6 |
}
|
|
Packit Service |
f629e6 |
if (rc < 0)
|
|
Packit Service |
f629e6 |
print rc, (PROCINFO["errno"] != 0), (ERRNO != "")
|
|
Packit Service |
f629e6 |
print (close(cmd) != 0)
|
|
Packit Service |
f629e6 |
}
|