On Sat, Aug 22, 2009 at 11:20 PM, Zack Weinberg
<address@hidden> wrote:
It doesn't need Boost.System, but it does still depend on a few pieces
of boost that we're not currently using, notably
boost::date_time::posix_time, bleah.
True enough. This looks like it's mostly internal to asio, although the deadline_timer stuff exposes it. We might be able to replace:
typedef basic_deadline_timer<boost::posix_time::ptime> deadline_timer;
with
typedef basic_deadline_timer<date_t> mtn_deadline_timer;
for monotone's use. Although this still leaves us requiring boost to support asio I guess.
Yeah, there's not much of an alternative there unless you want to
implement your own DNS resolver, which isn't a good idea. [Linux does
have getaddrinfo_a, but it's not portable, it may still use threads
under the hood, and it reports completion with *signals*. Gag.]
Yeesh.
> Another thought on this that I've had floating around for a while is that
> perhaps rather than starting a second process and running netsync over stdio
> we could have two separate database instances open and sync between them
> from within a single process. I haven't looked at this in any detail at all
> so it might just be a crazy idea, but I think it would avoid all of the
> windows related network issues. Maybe some of the refactoring that zack and
> markus did a while ago relating to app_state, options and database arguments
> in various api's would make the idea of having two open database objects
> less crazy?
That was one of my goals, in fact. We may not be 100% of the way
there yet though.
Great, I remember looking at that a while ago and thinking that it didn't look to be too far off.
Cheers,
Derek