{"action":"created","issue":{"url":"https://api.github.com/repos/carllerche/mio/issues/444","repository_url":"https://api.github.com/repos/carllerche/mio","labels_url":"https://api.github.com/repos/carllerche/mio/issues/444/labels{/name}","comments_url":"https://api.github.com/repos/carllerche/mio/issues/444/comments","events_url":"https://api.github.com/repos/carllerche/mio/issues/444/events","html_url":"https://github.com/carllerche/mio/pull/444","id":168449540,"number":444,"title":"windows: Finish pending writes when a socket is dropped","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":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-07-30T04:57:52Z","updated_at":"2016-08-01T16:52:55Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/carllerche/mio/pulls/444","html_url":"https://github.com/carllerche/mio/pull/444","diff_url":"https://github.com/carllerche/mio/pull/444.diff","patch_url":"https://github.com/carllerche/mio/pull/444.patch"},"body":"On Unix the kernel will do this for us, but on Windows we need to do it ourselves. Previously we would forcibly close a socket whenever a socket was dropped on Windows. This would leave around its associated Arc (for completion events), but it would cancel all I/O in flight.\r\n\r\nNow we instead allow writes to finish (we don't cancel them), and we just cancel any reads that are in flight. This should ensure that we actually get around to closing the socket in a timely fashion (not blocked on a read that'll never come) but we'll still ensure that all the data we said we wrote actually gets written.\r\n\r\nCloses #423 \r\n\r\ncc @seanmonstar "},"comment":{"url":"https://api.github.com/repos/carllerche/mio/issues/comments/236639188","html_url":"https://github.com/carllerche/mio/pull/444#issuecomment-236639188","issue_url":"https://api.github.com/repos/carllerche/mio/issues/444","id":236639188,"user":{"login":"seanmonstar","id":51479,"avatar_url":"https://avatars.githubusercontent.com/u/51479?v=3","gravatar_id":"","url":"https://api.github.com/users/seanmonstar","html_url":"https://github.com/seanmonstar","followers_url":"https://api.github.com/users/seanmonstar/followers","following_url":"https://api.github.com/users/seanmonstar/following{/other_user}","gists_url":"https://api.github.com/users/seanmonstar/gists{/gist_id}","starred_url":"https://api.github.com/users/seanmonstar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seanmonstar/subscriptions","organizations_url":"https://api.github.com/users/seanmonstar/orgs","repos_url":"https://api.github.com/users/seanmonstar/repos","events_url":"https://api.github.com/users/seanmonstar/events{/privacy}","received_events_url":"https://api.github.com/users/seanmonstar/received_events","type":"User","site_admin":false},"created_at":"2016-08-01T16:52:55Z","updated_at":"2016-08-01T16:52:55Z","body":"\\o/\r\n\r\nI can test later if you'd like"}}
{"actor":{"display_login":"seanmonstar"}}