Example #1
0
 void wait_available(available desired)
 {
     if (!is_available(desired))
     {
         assert(m_started);
         lock (m_mutex)  //std::unique_lock<std::mutex> lock(m_mutex);
         {
             //if (!is_available(desired))
             //    m_condition.wait(lock, [this, desired] () { return is_available(desired); });
         }
     }
 }
Example #2
0
 public bool is_available(available desired)
 {
     return((m_available & (unsigned)desired) == (unsigned)desired);  //return (m_available.load(std::memory_order_acquire) & desired) == desired;
 }
Example #3
0
 void notify_available(available value)
 {
     //std::unique_lock<std::mutex> lock(m_mutex);
     //m_available.fetch_or(value, std::memory_order_release);
     //m_condition.notify_all();
 }