当前位置: 首页>>代码示例>>C++>>正文


C++ conditional::signal方法代码示例

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


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

示例1: enqueue_to_head

 //! Add an element to the blocking queue
 inline void enqueue_to_head(const T& elem) {
   m_mutex.lock();
   m_queue.push_front(elem);
   // Signal threads waiting on the queue
   if (sleeping) m_conditional.signal();
   m_mutex.unlock();
 }
开发者ID:3upperm2n,项目名称:PowerGraph,代码行数:8,代码来源:blocking_queue.hpp

示例2: receive

 void receive(procid_t source, blob b) {
   mut.lock();
   val = b;
   valready = true;
   cond.signal();
   mut.unlock();
 }
开发者ID:3upperm2n,项目名称:PowerGraph,代码行数:7,代码来源:request_reply_handler.hpp

示例3: enqueue_conditional_signal

 inline void enqueue_conditional_signal(const T& elem, size_t signal_at_size) {
   m_mutex.lock();
   m_queue.push_back(elem);
   // Signal threads waiting on the queue
   if (sleeping && m_queue.size() >= signal_at_size) m_conditional.signal();
   m_mutex.unlock();
 }
开发者ID:3upperm2n,项目名称:PowerGraph,代码行数:7,代码来源:blocking_queue.hpp

示例4: swap

 void swap(queue_type &q) {
   m_mutex.lock();
   q.swap(m_queue);
   if (m_queue.empty() && sleeping_on_empty) {
     m_empty_conditional.signal();
   }
   m_mutex.unlock();
 }
开发者ID:3upperm2n,项目名称:PowerGraph,代码行数:8,代码来源:blocking_queue.hpp

示例5: post

 inline void post() const {
   mut.lock();
   if (waitercount > 0) {
     cond.signal();
   }
   semvalue++;
   mut.unlock();
 }
开发者ID:greeness,项目名称:graphlab_CMU,代码行数:8,代码来源:pthread_tools.hpp

示例6: decrement_running_counter

 inline void decrement_running_counter() {
   // now, a bit of care is needed here
   size_t r = threads_running.dec();
   if (r == 0) {
     join_lock.lock();
     if (join_waiting) {
       join_cond.signal();
     }
     join_lock.unlock();
   }
 }
开发者ID:Hannah1999,项目名称:Dato-Core,代码行数:11,代码来源:fiber_group.hpp

示例7: run

	void	 run (void)
			 {
			 	::printf ("counting till %i\n", cnt);
			 	for (int i=0; i<cnt; ++i)
			 	{
				 	DB.get() = DB.get().ival() + 1;
				 	::printf ("DB.get() -> %i\n", DB.get().ival());
				 }
				 *out = DB.get();
				 value ev = waitevent ();
				 threadStopped.signal ();
			 }
开发者ID:CloudVPS,项目名称:openpanel-grace,代码行数:12,代码来源:main.cpp

示例8: stop_log_rotation

void stop_log_rotation() {
  // if no log rotation active, quit.
  if (!thread_running) return;
  // join the log rotation thread.
  lock.lock();
  thread_running = false;
  cond.signal();
  lock.unlock();
  log_rotate_thread.join();
  // we will continue logging to the same location, but we will 
  // delete the symlink
  unlink(symlink_name.c_str());
}
开发者ID:Hannah1999,项目名称:Dato-Core,代码行数:13,代码来源:log_rotate.cpp

示例9: make_pair

 inline std::pair<T, bool> try_dequeue_in_critical_section() {
   T elem = T();
   // Wait while the queue is empty and this queue is alive
   if (m_queue.empty() || m_alive == false) {
     return std::make_pair(elem, false);
   }
   else {
     elem = m_queue.front();
     m_queue.pop_front();
     if (m_queue.empty() && sleeping_on_empty) {
       m_empty_conditional.signal();
     }
     return std::make_pair(elem, true);
   }
 }
开发者ID:3upperm2n,项目名称:PowerGraph,代码行数:15,代码来源:blocking_queue.hpp

示例10: zk_callback

void zk_callback(zookeeper_util::server_list* slist,
                std::string name_space,
                std::vector<std::string> servers,
                std::vector<std::string>& result,
                size_t num_to_watch_for,
                mutex& result_lock,
                conditional& result_cond) {
  if (servers.size() == num_to_watch_for) {
    result_lock.lock();
    result = servers;
    slist->stop_watching("graphlab");
    result_cond.signal();
    result_lock.unlock();
  }
}
开发者ID:DreamStudio2015,项目名称:SFrame,代码行数:15,代码来源:dc_init_from_zookeeper.cpp


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