{"action":"opened","issue":{"url":"https://api.github.com/repos/BoostGSoC13/boost.afio/issues/66","labels_url":"https://api.github.com/repos/BoostGSoC13/boost.afio/issues/66/labels{/name}","comments_url":"https://api.github.com/repos/BoostGSoC13/boost.afio/issues/66/comments","events_url":"https://api.github.com/repos/BoostGSoC13/boost.afio/issues/66/events","html_url":"https://github.com/BoostGSoC13/boost.afio/issues/66","id":59355213,"number":66,"title":"Strange code when ERROR_INSUFFICIENT_BUFFER==errcode in doextents()","user":{"login":"maksqwe","id":2767700,"avatar_url":"https://avatars.githubusercontent.com/u/2767700?v=3","gravatar_id":"","url":"https://api.github.com/users/maksqwe","html_url":"https://github.com/maksqwe","followers_url":"https://api.github.com/users/maksqwe/followers","following_url":"https://api.github.com/users/maksqwe/following{/other_user}","gists_url":"https://api.github.com/users/maksqwe/gists{/gist_id}","starred_url":"https://api.github.com/users/maksqwe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maksqwe/subscriptions","organizations_url":"https://api.github.com/users/maksqwe/orgs","repos_url":"https://api.github.com/users/maksqwe/repos","events_url":"https://api.github.com/users/maksqwe/events{/privacy}","received_events_url":"https://api.github.com/users/maksqwe/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-02-28T19:48:10Z","updated_at":"2015-02-28T19:48:10Z","closed_at":null,"body":"afio_iocp.ipp 1385\r\n```C++\r\n            do\r\n            {\r\n                ...\r\n                BOOL ok=DeviceIoControl(p->native_handle(), FSCTL_QUERY_ALLOCATED_RANGES, buffers->data(), sizeof(FILE_ALLOCATED_RANGE_BUFFER), buffers->data(), (DWORD)(buffers->size()*sizeof(FILE_ALLOCATED_RANGE_BUFFER)), &bytesout, ol.get());\r\n                DWORD errcode=GetLastError();\r\n                if(!ok && ERROR_IO_PENDING!=errcode)\r\n                {\r\n                  if(ERROR_INSUFFICIENT_BUFFER==errcode || ERROR_MORE_DATA==errcode)\r\n                  {\r\n                    buffers->resize(buffers->size()*2);\r\n                    continue;   // < ==========\r\n                  }\r\n                  //std::cerr << \"ERROR \" << errcode << std::endl;\r\n                  asio::error_code ec(errcode, asio::error::get_system_category());\r\n                  ol.complete(ec, ol.get()->InternalHigh);\r\n                }\r\n                else\r\n                  ol.release();\r\n            } while(false); // < ==========\r\n```\r\n\"continue\" will terminate the loop instead of continuing it."}}