Sounds like a plan. I've been trying to wean myself off Lwt exceptions by
explicitly adding [`Ok|`Error] everywhere. I'm keen to checkout async, but
I have to wait until xmas before I can read my physical copy of RWO :)

My current aim is to get the ocaml-fat stuff working over both
mirage-block-unix and ocaml-xen-block-driver via some semi-sane interface,
and then build from there!


On Sun, Dec 1, 2013 at 10:01 PM, Anil Madhavapeddy <notifications@github.com
> wrote:

> In lib/v1.ml:
>
> >        attempts to write the data contained within [buffers] to [t] starting
> > -      at [sector_start]. If an error occurs then the write may have partially
> > -      succeeded. *)
> > +      at [sector_start]. All writes are persisted before the IO operation
> > +      completes. If the IO operation fails with an error, then the write may
> > +      have partially succeeded.
>
> Also, I really don't think we want to tie ourselves to the Lwt exception
> mechanism. Async usually provides an explicit cancellable parameter
> instead.
>
> I suggest not worrying about timeouts and cancellations in this API for
> now, and treating it (as the ring protocol does) as a request stream. We
> can expose a lower-level (and correspondingly harder to use) Direct_blockAPI at a later stage for backends that do support more sophisticated
> cancellation schemes.
>
> —
> Reply to this email directly or view it on GitHub<https://github.com/mirage/mirage-types/pull/2/files#r8015236>
> .
>



-- 
Dave Scott