+ return m_queue.pop_frontNoEx();
+ }
+
+ void pushResult(GetRequest<Key, T, Caller, CallerData> req, T res)
+ {
+ for (typename std::list<CallerInfo<Caller, CallerData, Key, T> >::iterator
+ i = req.callers.begin();
+ i != req.callers.end(); ++i) {
+ CallerInfo<Caller, CallerData, Key, T> &ca = *i;
+
+ GetResult<Key,T,Caller,CallerData> result;
+
+ result.key = req.key;
+ result.item = res;
+ result.caller.first = ca.caller;
+ result.caller.second = ca.data;
+
+ ca.dest->push_back(result);
+ }