Subject: [boost] Tips to fix boost::asio::windows::random_access_handle which is seriously broken
From: Niall Douglas (ndouglas_at_[hidden])
Date: 2013-06-13 11:22:12


Dear Boost,

The forthcoming GSoC Boost.AFIO library has found a problem with
boost::asio::windows::random_access_handle in that it appears to clamp
buffer sizes to 64Kb and not increment overlapped offsets during
multi-buffer reads and writes, and which is reported at
https://svn.boost.org/trac/boost/ticket/8669. These are desirable features
for network i/o, not so for file i/o.

As my work on the existing code base which Paul is porting to Boost is now
complete and purring beautifully on POSIX, I'm thinking I might as well go
fix the Boost.ASIO Windows IOCP problem. Before I begin, can I ask here if
anyone else has done some work on this topic from which I might be able to
borrow? The thread at
http://comments.gmane.org/gmane.comp.lib.boost.asio.user/3676 suggests that
if I use async_write_some() then I can bypass the 64Kb clamp using "my own
completion condition". I'm thinking that
boost::asio::windows::random_access_handle really ought to actually
implement random access, so rather than hacking around the problem, fixing
boost::asio::windows::random_access_handle is better.

My thanks in advance,
Niall

---
Opinions expressed here are my own and do not necessarily represent those of
BlackBerry Inc.