{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rfcs/issues/941","labels_url":"https://api.github.com/repos/rust-lang/rfcs/issues/941/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rfcs/issues/941/comments","events_url":"https://api.github.com/repos/rust-lang/rfcs/issues/941/events","html_url":"https://github.com/rust-lang/rfcs/issues/941","id":59892549,"number":941,"title":"Expand the scope of std::process","user":{"login":"alexcrichton","id":64996,"avatar_url":"https://avatars.githubusercontent.com/u/64996?v=3","gravatar_id":"","url":"https://api.github.com/users/alexcrichton","html_url":"https://github.com/alexcrichton","followers_url":"https://api.github.com/users/alexcrichton/followers","following_url":"https://api.github.com/users/alexcrichton/following{/other_user}","gists_url":"https://api.github.com/users/alexcrichton/gists{/gist_id}","starred_url":"https://api.github.com/users/alexcrichton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexcrichton/subscriptions","organizations_url":"https://api.github.com/users/alexcrichton/orgs","repos_url":"https://api.github.com/users/alexcrichton/repos","events_url":"https://api.github.com/users/alexcrichton/events{/privacy}","received_events_url":"https://api.github.com/users/alexcrichton/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/rust-lang/rfcs/labels/A-libs","name":"A-libs","color":"d7e101"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-03-05T01:48:25Z","updated_at":"2015-05-18T13:50:16Z","closed_at":null,"body":"Like #939, this issue is intended to collect information about the expansion of the `std::process` module. As with most of the rest of the I/O reform, the goal of `std::process` was originally to be quite conservative. Over time we knew we were going to want to expand the module after we got experience using it as well as seeing how this sort of expansion plays out in the bigger picture.\r\n\r\nI'll list some pieces below of parts I think that could be expanded, and I'll try to keep the list updated over time:\r\n\r\n* The I/O handle types do not expose their internals. This means that on unix even though a pipe is known to be a file descriptor, the file descriptor is not accessible for interoperation with other I/O libraries.\r\n* It is not possible to specify a custom I/O handle as one of the stdio descriptors. For example on unix the stdin could be specified as a specific file descriptor which already exists. This functionality needs to be fleshed out on Windows first. - #893\r\n* Process spawning should expose dropping capabilities on linux - rust-lang/rust#12137\r\n* File descriptors may be leaked when spawning processes - rust-lang/rust#12148\r\n* Spawning a daemon process is not currently possible (on either windows or unix)\r\n* A post-fork function to execute on unix would be useful for fine-tuning behavior for the child\r\n* Waiting for a child with a timeout on windows is fairly trivial to implement but is not expose currently.\r\n\r\nAs with #939 I don't plan on writing an RFC about this expansion in the near future, but I'd like one place to collect information about how `std::process` can be expanded."},"comment":{"url":"https://api.github.com/repos/rust-lang/rfcs/issues/comments/103066653","html_url":"https://github.com/rust-lang/rfcs/issues/941#issuecomment-103066653","issue_url":"https://api.github.com/repos/rust-lang/rfcs/issues/941","id":103066653,"user":{"login":"nagisa","id":679122,"avatar_url":"https://avatars.githubusercontent.com/u/679122?v=3","gravatar_id":"","url":"https://api.github.com/users/nagisa","html_url":"https://github.com/nagisa","followers_url":"https://api.github.com/users/nagisa/followers","following_url":"https://api.github.com/users/nagisa/following{/other_user}","gists_url":"https://api.github.com/users/nagisa/gists{/gist_id}","starred_url":"https://api.github.com/users/nagisa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nagisa/subscriptions","organizations_url":"https://api.github.com/users/nagisa/orgs","repos_url":"https://api.github.com/users/nagisa/repos","events_url":"https://api.github.com/users/nagisa/events{/privacy}","received_events_url":"https://api.github.com/users/nagisa/received_events","type":"User","site_admin":false},"created_at":"2015-05-18T13:50:16Z","updated_at":"2015-05-18T13:50:16Z","body":"Need to add a way to wait for children with a timeout."}}