Пример #1
0
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();
}
Пример #2
0
 bool isSubset(vector<T> &a, const Transaction &tran) {
   return includes(tran.begin(), tran.end(), a.begin(), a.end());
 }