{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rfcs/issues/1081","repository_url":"https://api.github.com/repos/rust-lang/rfcs","labels_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1081/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1081/comments","events_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1081/events","html_url":"https://github.com/rust-lang/rfcs/issues/1081","id":69864771,"number":1081,"title":"Async IO","user":{"login":"steveklabnik","id":27786,"avatar_url":"https://avatars.githubusercontent.com/u/27786?v=3","gravatar_id":"","url":"https://api.github.com/users/steveklabnik","html_url":"https://github.com/steveklabnik","followers_url":"https://api.github.com/users/steveklabnik/followers","following_url":"https://api.github.com/users/steveklabnik/following{/other_user}","gists_url":"https://api.github.com/users/steveklabnik/gists{/gist_id}","starred_url":"https://api.github.com/users/steveklabnik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/steveklabnik/subscriptions","organizations_url":"https://api.github.com/users/steveklabnik/orgs","repos_url":"https://api.github.com/users/steveklabnik/repos","events_url":"https://api.github.com/users/steveklabnik/events{/privacy}","received_events_url":"https://api.github.com/users/steveklabnik/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/rust-lang/rfcs/labels/A-community-library","name":"A-community-library","color":"d7e101"},{"url":"https://api.github.com/repos/rust-lang/rfcs/labels/A-libs","name":"A-libs","color":"d7e101"},{"url":"https://api.github.com/repos/rust-lang/rfcs/labels/A-wishlist","name":"A-wishlist","color":"d7e101"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":37,"created_at":"2015-04-21T14:41:30Z","updated_at":"2016-03-04T15:27:10Z","closed_at":null,"body":"Rust currently only includes synchronous IO in the standard library. Should we also have async IO as well, or leave that to an external crate? What would the design look like?\r\n\r\nMoved from https://github.com/rust-lang/rust/issues/6842\r\n\r\nRelated: https://github.com/rust-lang/rfcs/issues/388"},"comment":{"url":"https://api.github.com/repos/rust-lang/rfcs/issues/comments/192321991","html_url":"https://github.com/rust-lang/rfcs/issues/1081#issuecomment-192321991","issue_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1081","id":192321991,"user":{"login":"retep998","id":666308,"avatar_url":"https://avatars.githubusercontent.com/u/666308?v=3","gravatar_id":"","url":"https://api.github.com/users/retep998","html_url":"https://github.com/retep998","followers_url":"https://api.github.com/users/retep998/followers","following_url":"https://api.github.com/users/retep998/following{/other_user}","gists_url":"https://api.github.com/users/retep998/gists{/gist_id}","starred_url":"https://api.github.com/users/retep998/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/retep998/subscriptions","organizations_url":"https://api.github.com/users/retep998/orgs","repos_url":"https://api.github.com/users/retep998/repos","events_url":"https://api.github.com/users/retep998/events{/privacy}","received_events_url":"https://api.github.com/users/retep998/received_events","type":"User","site_admin":false},"created_at":"2016-03-04T15:27:09Z","updated_at":"2016-03-04T15:27:09Z","body":"@akcom Ah, for a moment I thought you meant Windows provided readiness based async on Windows. What you're actually saying is that Windows provides ways to receive notification of completed overlapped operations other than IOCPs which is actually what I said in my other message, so I'm not entirely sure what your point is.\r\n\r\n>The only options you really have are how it gets back to you. Whether you use the wait functions on overlapped events, or have an APC fire, or a callback in a thread pool, or a completion packet to an IOCP.\r\n\r\nNote that you cannot use the wait functions to determine when you can read/write a file without blocking, you have to first start an operation asynchronously and then use some method to be notified of when the operation is done.\r\n"}}