On Wed, Feb 3, 2016 at 6:36 AM, Ivan Zhakov <i...@visualsvn.com> wrote:
>...

> Also I think we should not use callbacks to deliver data from the FS
> layer. Currently FS API is passive and I think it should remain the
> same: FS API users may invoke FS function from callback and this will
> require FS implementation to be fully reentrant (to avoid problems
> like fixed in r1718167 [1])
>

Well, a callback-based interface can snapshot the state and use that as the
basis for each iteration of the callback.

An iteration interface may need to load/unpack on each invocation, and may
need to re-establish the snapshot established at the beginning of the
iteration.

I don't believe there is clearly-favored solution here. This new API solves
a clear problem with our existing API, so I say +1 for it. Sure, maybe
there are other approaches that might also work. I'll +1 that work when it
arrives too :-)

One thing that I found during some of the Ev2 work, and the ra_serf work,
is that push/pull models of control flow really affect our API and our
clients. Ideally, we'd have both, though I hate the additional complexity.
But providing clients the choice of push vs pull can be a huge win.

Cheers,
-g

Reply via email to