template<class T> void ASql::ConnectionPar<T>::queue(Transaction<T>& transaction, int instance) { if(instance == -1) { instance=0; for(unsigned int i=1; i<threads(); ++i) {{ boost::lock_guard<boost::mutex> queriesLock(queries[i]); if(queries[i].size() < queries[instance].size()) instance=i; }} } boost::lock_guard<boost::mutex> queriesLock(queries[instance]); for(typename Transaction<T>::iterator it=transaction.begin(); it!=transaction.end(); ++it) queries[instance].push(QuerySet(it->m_query, it->m_statement, false)); queries[instance].back().m_commit = true; wakeUp[instance].notify_one(); }
bool isSubset(vector<T> &a, const Transaction &tran) { return includes(tran.begin(), tran.end(), a.begin(), a.end()); }