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