summaryrefslogtreecommitdiff
path: root/usr/src/man/man3proc/proc_initstdio.3proc
diff options
context:
space:
mode:
authorJerry Jelinek <jerry.jelinek@joyent.com>2017-06-08 10:10:29 +0000
committerJerry Jelinek <jerry.jelinek@joyent.com>2017-06-08 10:10:29 +0000
commit8cb9f5acecaded019a9a55454a31dcf4328d0d1b (patch)
tree7c69e28b9b9b5ac2d9f928324a663becf2efa2d7 /usr/src/man/man3proc/proc_initstdio.3proc
parent3a5445f1b9d90e4f1538503bd60913c8f302c17f (diff)
parent79809f9cf402f130667349b2d4007ecd65d63c6f (diff)
downloadillumos-joyent-8cb9f5acecaded019a9a55454a31dcf4328d0d1b.tar.gz
[illumos-gate merge]release-20170608
commit 79809f9cf402f130667349b2d4007ecd65d63c6f 8269 dtrace stddev aggregation is normalized incorrectly commit 22c8b9583d07895c16549075a53668d7bc988cf3 8108 zdb -l fails to read labels 2 and 3 commit 0255edcc85fc0cd1dda0e49bcd52eb66c06a1b16 8056 zfs send size estimate is inaccurate for some zvols commit dbfd9f930004c390a2ce2cf850c71b4f880eef9c 8156 dbuf_evict_notify() does not need dbuf_evict_lock commit 690031d326342fa4ea28b5e80f1ad6a16281519d 8168 NULL pointer dereference in zfs_create() commit 7c4ab494ff60bbbcc0889e71388ae63e903bbf57 8276 rpcbind leaks memory due to libumem per thread caching. commit f176a0a4cd61cbd708a7f25dc30d221f4d5902ba 8270 dnlc_reverse_lookup() is unsafe at any speed commit 72d3dbb9ab4481606cb93caca98ba3b3a8eb6ce2 8300 fix man page issues found by mandoc 1.14.1 commit cb4d790db8fe85bce9f9647fe4e1bdc274c7af1c 8337 gss: misleading-indentation commit f53522305c07915a44e86f2455cc62e7aac27037 8324 more: misleading-indentation Conflicts: usr/src/uts/common/fs/lookup.c usr/src/man/man3c/thrd_equal.3c
Diffstat (limited to 'usr/src/man/man3proc/proc_initstdio.3proc')
-rw-r--r--usr/src/man/man3proc/proc_initstdio.3proc31
1 files changed, 17 insertions, 14 deletions
diff --git a/usr/src/man/man3proc/proc_initstdio.3proc b/usr/src/man/man3proc/proc_initstdio.3proc
index 315f717f81..5576c33dfa 100644
--- a/usr/src/man/man3proc/proc_initstdio.3proc
+++ b/usr/src/man/man3proc/proc_initstdio.3proc
@@ -41,17 +41,19 @@ The
and
.Fn proc_finistdio
functions are utilities provided to aid with the possibility of deadlock
-while doing I/O operations. If a process is trying to do I/O, but
-holding the process handle that would consume that I/O, then eventually
-the program holding the process handle will block as none of its I/O has
-been drained. However, because it is holding a process handle to that
-process, it will never be drained.
+while doing I/O operations.
+If a process is trying to do I/O, but holding the process handle that would
+consume that I/O, then eventually the program holding the process handle will
+block as none of its I/O has been drained.
+However, because it is holding a process handle to that process, it will never
+be drained.
.Pp
Consider, for example, the following invocation:
.Li pfiles `pgrep xterm`
-where the command was launched from a shell on an xterm. Because the
-xterm is stopped, it will not be able to write out any of the standard
-out that gets passed to it, leading to a deadlock. The
+where the command was launched from a shell on an xterm.
+Because the xterm is stopped, it will not be able to write out any of the
+standard out that gets passed to it, leading to a deadlock.
+The
.Li pfiles
program cannot release the
.Li xterm
@@ -60,9 +62,9 @@ due to the same hold.
.Pp
To address this, these functions duplicate the standard output and
standard error of the process to temporary files and then flushes it out
-to the original file descriptors and streams later. When finished, the
-original file descriptors are restored as standard out and standard
-error.
+to the original file descriptors and streams later.
+When finished, the original file descriptors are restored as standard out and
+standard error.
.Pp
The
.Fn proc_initstdio
@@ -72,9 +74,10 @@ descriptors and retains the originals.
The
.Fn proc_flushstdio
functions flushes all of the cached data from the temporary standard out
-and standard error back to the underlying ones. This function should
-only be called after all process handles have been released. For
-example, if iterating on multiple processes, calling this after handling
+and standard error back to the underlying ones.
+This function should only be called after all process handles have been
+released.
+For example, if iterating on multiple processes, calling this after handling
each one is safe.
.Pp
The