}
}
-template <class A>
-std::ostream & operator<<(std::ostream &o, const std::vector<A> &d) {
- o << "[";
- for (typename std::vector<A>::const_iterator i=d.begin(); i!=d.end(); i++) {
- o << *i;
- if (i+1 != d.end())
- o << ", ";
- }
- o << "]";
- return o;
-}
-
bool rsm::sync_with_backups() {
adopt_lock ml(rsm_mutex);
ml.unlock();
insync = true;
cfg->get_view(vid_insync, backups);
backups.erase(find(backups.begin(), backups.end(), cfg->myaddr()));
- LOG("rsm::sync_with_backups " << backups);
+ LOG("rsm::sync_with_backups " << make_iterator_pair(backups.begin(), backups.end()));
sync_cond.wait(ml);
insync = false;
return true;