Skip to content

Commit 18becad

Browse files
authored
Merge pull request #532 from garlick/bg_stdin
rfc42: clarify background subproc input handling
2 parents dc8c675 + 77c0725 commit 18becad

1 file changed

Lines changed: 9 additions & 3 deletions

File tree

spec_42.rst

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,10 @@ request, a single response SHALL be sent: either an :program:`exec started`
112112
response if successful, or an :program:`exec error` response on failure. The
113113
subprocess SHALL continue running as a child of the subprocess server until
114114
it terminates or the server is shut down. The server MAY log subprocess
115-
output and exit code to its own log stream.
115+
output and exit code to its own log stream. The subprocess's standard input,
116+
and any writable auxiliary channels, SHALL be at end-of-file, since a
117+
background subprocess that reads them could otherwise silently block while
118+
no client is attached.
116119

117120
.. object:: exec request
118121

@@ -143,7 +146,9 @@ output and exit code to its own log stream.
143146

144147
write-credit (8)
145148
Send ``add-credit`` exec responses when buffer space is available
146-
for standard input or writable auxiliary channels.
149+
for standard input or writable auxiliary channels. This flag SHALL
150+
NOT be combined with a non-streaming (background mode) request; doing
151+
so is an error.
147152

148153
waitable (16)
149154
Allow the subprocess to be waited on with a ``wait`` RPC.
@@ -154,7 +159,8 @@ output and exit code to its own log stream.
154159

155160
stdio-fallthrough (1)
156161
Let subprocess inherit stdin, stdout, and stderr file descriptors
157-
from the subprocess server.
162+
from the subprocess server. This flag SHALL NOT be combined with a
163+
non-streaming (background mode) request; doing so is an error.
158164

159165
no-setpgrp (2)
160166
Do not call setpgrp(2) before exec. Use kill(2) instead of killpg(2)

0 commit comments

Comments
 (0)