25#ifndef ACTIONENGINE_CONCURRENCY_CONCURRENCY_H_ 
   26#define ACTIONENGINE_CONCURRENCY_CONCURRENCY_H_ 
   28#include <absl/base/attributes.h> 
   29#include <absl/base/nullability.h> 
   30#include <absl/base/thread_annotations.h> 
   31#include <absl/time/time.h> 
   33#include "thread/concurrency.h" 
   37#include "actionengine/google3_concurrency_headers.h" 
   39#include "thread/concurrency.h" 
   62namespace act::concurrency {
 
   65using CondVar = absl::CondVar;
 
   66using Mutex = absl::Mutex;
 
   67using MutexLock = absl::MutexLock;
 
   69inline void SleepFor(absl::Duration duration) {
 
   70  absl::SleepFor(duration);
 
   73using CondVar = impl::CondVar;
 
   74using Mutex = impl::Mutex;
 
   75using MutexLock = impl::MutexLock;
 
   77void SleepFor(absl::Duration duration);
 
   92class ABSL_SCOPED_LOCKABLE TwoMutexLock {
 
   94  explicit TwoMutexLock(Mutex* absl_nonnull mu1, Mutex* absl_nonnull mu2)
 
   95      ABSL_EXCLUSIVE_LOCK_FUNCTION(mu1, mu2);
 
   98  TwoMutexLock(
const TwoMutexLock&) = 
delete;  
 
   99  TwoMutexLock& operator=(
const TwoMutexLock&) = 
delete;
 
  101  ~TwoMutexLock() ABSL_UNLOCK_FUNCTION();
 
  104  Mutex* absl_nonnull const mu1_;
 
  105  Mutex* absl_nonnull const mu2_;
 
  111using concurrency::CondVar;
 
  112using concurrency::Mutex;
 
  113using concurrency::MutexLock;
 
  123  concurrency::SleepFor(duration);
 
 
void SleepFor(absl::Duration duration)
Sleeps for the given duration, allowing other fibers to proceed on the rest of the thread's quantum,...
Definition concurrency.h:122