content: package kotlinx.coroutines.sync;
  
  import kotlin.Deprecated;
  import kotlin.DeprecationLevel;
  import kotlin.Metadata;
  import kotlin.Unit;
  import kotlin.coroutines.Continuation;
  import kotlinx.coroutines.selects.SelectClause2;
  
  @Metadata(d1 = {"\u0000\"\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0007\n\u0002\u0010\u0002\n\u0002\b\u0004\bf\u0018\u00002\u00020\u0001J\u0010\u0010\u000b\u001a\u00020\u00032\u0006\u0010\f\u001a\u00020\u0001H&J\u001d\u0010\r\u001a\u00020\u000e2\n\b\u0002\u0010\f\u001a\u0004\u0018\u00010\u0001H¦@ø\u0001\u0000¢\u0006\u0002\u0010\u000fJ\u0014\u0010\u0010\u001a\u00020\u00032\n\b\u0002\u0010\f\u001a\u0004\u0018\u00010\u0001H&J\u0014\u0010\u0011\u001a\u00020\u000e2\n\b\u0002\u0010\f\u001a\u0004\u0018\u00010\u0001H&R\u0012\u0010\u0002\u001a\u00020\u0003X¦\u0004¢\u0006\u0006\u001a\u0004\b\u0002\u0010\u0004R(\u0010\u0005\u001a\u0010\u0012\u0006\u0012\u0004\u0018\u00010\u0001\u0012\u0004\u0012\u00020\u00000\u00068&X§\u0004¢\u0006\f\u0012\u0004\b\u0007\u0010\b\u001a\u0004\b\t\u0010\n\u0002\u0004\n\u0002\b\u0019¨\u0006\u0012"}, d2 = {"Lkotlinx/coroutines/sync/Mutex;", "", "isLocked", "", "()Z", "onLock", "Lkotlinx/coroutines/selects/SelectClause2;", "getOnLock$annotations", "()V", "getOnLock", "()Lkotlinx/coroutines/selects/SelectClause2;", "holdsLock", "owner", "lock", "", "(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "tryLock", "unlock", "kotlinx-coroutines-core"}, k = 1, mv = {1, 6, 0}, xi = 48)
  /* compiled from: Mutex.kt */
  public interface Mutex {
  
      @Metadata(k = 3, mv = {1, 6, 0}, xi = 48)
      /* compiled from: Mutex.kt */
      public static final class DefaultImpls {
          @Deprecated(level = DeprecationLevel.WARNING, message = "Mutex.onLock deprecated without replacement. For additional details please refer to #2794")
          public static /* synthetic */ void getOnLock$annotations() {
          }
  
          public static /* synthetic */ Object lock$default(Mutex mutex, Object obj, Continuation continuation, int i, Object obj2) {
              if (obj2 == null) {
                  if ((i & 1) != 0) {
                      obj = null;
                  }
                  return mutex.lock(obj, continuation);
              }
              throw new UnsupportedOperationException("Super calls with default arguments not supported in this target, function: lock");
          }
  
          public static /* synthetic */ boolean tryLock$default(Mutex mutex, Object obj, int i, Object obj2) {
              if (obj2 == null) {
                  if ((i & 1) != 0) {
                      obj = null;
                  }
                  return mutex.tryLock(obj);
              }
              throw new UnsupportedOperationException("Super calls with default arguments not supported in this target, function: tryLock");
          }
  
          public static /* synthetic */ void unlock$default(Mutex mutex, Object obj, int i, Object obj2) {
              if (obj2 == null) {
                  if ((i & 1) != 0) {
                      obj = null;
                  }
                  mutex.unlock(obj);
                  return;
              }
              throw new UnsupportedOperationException("Super calls with default arguments not supported in this target, function: unlock");
          }
      }
  
      SelectClause2<Object, Mutex> getOnLock();
  
      boolean holdsLock(Object obj);
  
      boolean isLocked();
  
      Object lock(Object obj, Continuation<? super Unit> continuation);
  
      boolean tryLock(Object obj);
  
      void unlock(Object obj);
  }
  