• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ pool类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中pool的典型用法代码示例。如果您正苦于以下问题:C++ pool类的具体用法?C++ pool怎么用?C++ pool使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了pool类的18个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1:

 ~iuPool()
 {
     // すべて解放する
     for( pool::iterator it=m_pool.begin(); it != m_pool.end(); )
     {
         value_ptr p = *it;
         it = m_pool.erase(it);
         delete p;
     }
 }
开发者ID:srz-zumix,项目名称:iutest,代码行数:10,代码来源:iutest_pool.hpp


示例2: PortID_t

void InterConnection::test() 
{
  TestMessage* t;
  for (ushort i = 0; i < rPolicy->getnRouters(); i++) {
    t = tmpool.out();
    t->init(i, PortID_t(100), 0, PortID_t(101), Message::RCV_AND_PASS);
    t->setSize(100);
    routers[i]->launchMsg(t);
    t = tmpool.out();
    t->init(i, PortID_t(100), 0, PortID_t(101), Message::RCV);
    t->setSize(100);
    routers[i]->launchMsg(t);
  }
}
开发者ID:bugamn,项目名称:esesc,代码行数:14,代码来源:InterConn.cpp


示例3: is_from

 static bool is_from(void * const ptr)
 { //! Equivalent to SingletonPool::p.is_from(chunk); synchronized.
   //! \returns true if chunk is from SingletonPool::is_from(chunk)
   pool_type & p = get_pool();
   details::pool::guard<Mutex> g(p);
   return p.is_from(ptr);
 }
开发者ID:wuxiang,项目名称:elephants,代码行数:7,代码来源:singleton_pool.hpp


示例4: alloc_node

 node* alloc_node(node* lptr, node* rptr, T const& v,
                  tag_t ltag = 0, tag_t rtag = 0)
 {
     node* chunk = pool_.allocate();
     new (chunk) node(lptr, rptr, v, ltag, rtag);
     return chunk;
 }
开发者ID:atrantan,项目名称:hpx,代码行数:7,代码来源:deque.hpp


示例5: LOG

void TestMessage::garbageCollect() 
{
    refCount--;
    if (refCount == 0) {
      LOG("destroying TestMessage");
      tmpool.in(this); 
    }
}
开发者ID:bugamn,项目名称:esesc,代码行数:8,代码来源:InterConn.cpp


示例6: push

 void push(value_ptr ptr) { m_pool.push_back(ptr); }
开发者ID:srz-zumix,项目名称:iutest,代码行数:1,代码来源:iutest_pool.hpp


示例7: purge_memory

 static bool purge_memory()
 { //! Equivalent to SingletonPool::p.purge_memory(); synchronized.
   pool_type & p = get_pool();
   details::pool::guard<Mutex> g(p);
   return p.purge_memory();
 }
开发者ID:wuxiang,项目名称:elephants,代码行数:6,代码来源:singleton_pool.hpp


示例8: dealloc_node

 void dealloc_node(node* n)
 {
     n->~node();
     pool_.deallocate(n);
 }
开发者ID:atrantan,项目名称:hpx,代码行数:5,代码来源:deque.hpp


示例9: ordered_free

 static void ordered_free(void * const ptr, const size_type n)
 { //! Equivalent to SingletonPool::p.ordered_free(chunk, n); synchronized.
   pool_type & p = get_pool();
   details::pool::guard<Mutex> g(p);
   p.ordered_free(ptr, n);
 }
开发者ID:wuxiang,项目名称:elephants,代码行数:6,代码来源:singleton_pool.hpp


示例10: ordered_malloc

 static void * ordered_malloc(const size_type n)
 { //! Equivalent to SingletonPool::p.ordered_malloc(n); synchronized.
   pool_type & p = get_pool();
   details::pool::guard<Mutex> g(p);
   return p.ordered_malloc(n);
 }
开发者ID:wuxiang,项目名称:elephants,代码行数:6,代码来源:singleton_pool.hpp


示例11: buffer

 buffer_ptr buffer()
 {
     return buffer_ptr(m_pool.get(), m_deleter);
 }
开发者ID:hundeboll,项目名称:netmix,代码行数:4,代码来源:buffer_pool.hpp


示例12: new

void *SmallObject::operator new(size_t size)
{
    return mem_pool.allocate(size);
}
开发者ID:wpbest,项目名称:copperspice,代码行数:4,代码来源:smallobject.cpp


示例13: processAck

void TaggedPrefetcher::processAck(PAddr addr)
{
  uint paddr = addr & defaultMask;

  penFetchSet::iterator itF = pendingFetches.find(paddr);
  if(itF == pendingFetches.end()) 
    return;

  bLine *l = buff->fillLine(paddr);

  penReqMapper::iterator it = pendingRequests.find(paddr);

  if(it != pendingRequests.end()) {
    LOG("NLAP: returnAccess [%08lx]", paddr);
    std::queue<MemRequest *> *tmpReqQueue;
    tmpReqQueue = (*it).second;
    while (tmpReqQueue->size()) {
      tmpReqQueue->front()->goUpAbs(nextBuffSlot());
      tmpReqQueue->pop();
    }
    pendingRequests.erase(paddr);
    activeMemReqPool.in(tmpReqQueue);
  }
  pendingFetches.erase(paddr);
}
开发者ID:hdl,项目名称:SuperTrans,代码行数:25,代码来源:TaggedPrefetcher.cpp


示例14: read

void MarkovPrefetcher::read(MemRequest *mreq)
{
  uint32_t paddr = mreq->getPAddr() & defaultMask;
  bLine *l = buff->readLine(paddr);

  if(l) { //hit
    LOG("GHBP: hit on [%08lx]", paddr);
    hit.inc();
    mreq->goUpAbs(nextBuffSlot());
    return;
  }

  penFetchSet::iterator it = pendingFetches.find(paddr);
  if(it != pendingFetches.end()) { // half-miss
    //LOG("GHBP: half-miss on %08lx", paddr);
    halfMiss.inc();
    penReqMapper::iterator itR = pendingRequests.find(paddr);

    if (itR == pendingRequests.end()) {
      pendingRequests[paddr] = activeMemReqPool.out();
      itR = pendingRequests.find(paddr);
    }

    I(itR != pendingRequests.end());
    
    (*itR).second->push(mreq);
    return;
  }

  //LOG("GHBP: miss on [%08lx]", paddr);
  miss.inc();
  mreq->goDown(0, lowerLevel[0]);
}
开发者ID:dilawar,项目名称:sesc,代码行数:33,代码来源:MarkovPrefetcher.cpp


示例15: read

void AlwaysPrefetch::read(MemRequest *mreq)
{
  uint32_t paddr = mreq->getPAddr() & defaultMask;
  bLine *l = buff->readLine(paddr);

  if(l) { //hit
    LOG("NLAP: hit on [%08lx]", (long unsigned int) paddr);
    hit.inc();    
    mreq->goUpAbs(nextBuffSlot());
    return;
  }

  penFetchSet::iterator it = pendingFetches.find(paddr);
  if(it != pendingFetches.end()) { // half-miss
    LOG("NLAP: half-miss on %08lx",(long unsigned int)  paddr);
    penReqMapper::iterator itR = pendingRequests.find(paddr);
    halfMiss.inc();
    if (itR == pendingRequests.end()) {
      pendingRequests[paddr] = activeMemReqPool.out();
      itR = pendingRequests.find(paddr);
    }

    I(itR != pendingRequests.end());
    
    (*itR).second->push(mreq);
    //prefetch(paddr+lineSize, 0); 
    //prefetch( paddr + buff->getLineSize(), 0 ); 
    return;
  }

  LOG("NLAP: miss on [%08lx]", (long unsigned int) paddr);
  miss.inc();

  Time_t lat = nextTableSlot() - globalClock;    

  prefetch(paddr+(buff->getLineSize()), lat);
  lat = nextTableSlot() - globalClock;    
  prefetch(paddr+(2*buff->getLineSize()), lat); 
  mreq->goDown(0, lowerLevel[0]);
}
开发者ID:taiwanese2001,项目名称:sesc-echang,代码行数:40,代码来源:AlwaysPrefetch.cpp


示例16: read

void StridePrefetcher::read(MemRequest *mreq)
{
  uint paddr = mreq->getPAddr() & defaultMask;
  bLine *l = buff->readLine(paddr);

  if(l) { //hit
    LOG("SP: hit on %08lx", paddr);
    hit.inc();
    mreq->goUpAbs(nextBuffSlot() + hitDelay); 
    learnHit(paddr);
    return;
  }

  penFetchSet::iterator it = pendingFetches.find(paddr);
  if(it != pendingFetches.end()) { // half-miss
    LOG("SP: half-miss on %08lx", paddr);
    halfMiss.inc();
    penReqMapper::iterator itR = pendingRequests.find(paddr);

    if (itR == pendingRequests.end()) {
      pendingRequests[paddr] = activeMemReqPool.out();
      itR = pendingRequests.find(paddr);
    }

    I(itR != pendingRequests.end());
    
    (*itR).second->push(mreq);
    learnHit(paddr); // half-miss is a hit from the learning point of view
    return;
  }

  LOG("SP:miss on %08lx", paddr);
  miss.inc();
  learnMiss(paddr);
  mreq->goDownAbs(nextBuffSlot() + missDelay, lowerLevel[0]); 
}
开发者ID:hdl,项目名称:SuperTrans,代码行数:36,代码来源:StridePrefetcher.cpp


示例17: garbageCollect

 void garbageCollect() {
   msgPool.in(this);
 }
开发者ID:rlavaee,项目名称:sesc-src,代码行数:3,代码来源:netBench.cpp


示例18:

 static PBTestAckMsg *create(const ProtocolBase *srcPB, const ProtocolBase *dstPB) {
   PBTestAckMsg *msg = msgPool.out();
   msg->setupMessage(srcPB,dstPB,TestAckMsg);
   return msg;
 }
开发者ID:rlavaee,项目名称:sesc-src,代码行数:5,代码来源:netBench.cpp



注:本文中的pool类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ population类代码示例发布时间:2022-05-31
下一篇:
C++ polynomial类代码示例发布时间:2022-05-31
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap