25 WUQueueBuffer::riterator
26 WUQueueBuffer::allocate_buffer(boost::uint64_t
size) {
27 boost::mpi::request req;
28 boost::shared_ptr< std::vector < WorkUnitSP > > vec(
new std::vector< WorkUnitSP > ) ;
29 buffer_.push_back( boost::make_tuple(size,req, vec) );
31 return buffer_.rbegin();
34 std::vector< WorkUnitSP >
35 WUQueueBuffer::cleanup_reqs() {
36 std::vector< WorkUnitSP > vec;
37 iterator itr = buffer_.begin();
38 while( itr != buffer_.end() ) {
39 if( itr->get<1>().test().is_initialized() ){
40 current_mem_ -= itr->get<0>();
41 vec.insert( vec.end(), itr->get<2>()->begin(), itr->get<2>()->
end() );
42 itr = buffer_.erase(itr);