| 304 | const std::vector<int_fd>& whitelist_fds); |
| 305 | |
| 306 | struct Data |
| 307 | { |
| 308 | ~Data() |
| 309 | { |
| 310 | if (in.isSome()) { os::close(in.get()); } |
| 311 | if (out.isSome()) { os::close(out.get()); } |
| 312 | if (err.isSome()) { os::close(err.get()); } |
| 313 | } |
| 314 | |
| 315 | pid_t pid; |
| 316 | |
| 317 | #ifdef __WINDOWS__ |
| 318 | Option<::internal::windows::ProcessData> process_data; |
| 319 | #endif // __WINDOWS__ |
| 320 | |
| 321 | // The parent side of the pipe for stdin/stdout/stderr. If the |
| 322 | // IO mode is not a pipe, `None` will be stored. |
| 323 | // NOTE: stdin, stdout, stderr are macros on some systems, hence |
| 324 | // these names instead. |
| 325 | Option<int_fd> in; |
| 326 | Option<int_fd> out; |
| 327 | Option<int_fd> err; |
| 328 | |
| 329 | Future<Option<int>> status; |
| 330 | }; |
| 331 | |
| 332 | Subprocess() : data(new Data()) {} |
| 333 |
nothing calls this directly
no outgoing calls
no test coverage detected