.class public abstract Lkotlinx/coroutines/scheduling/TasksKt; .super Ljava/lang/Object; .source "SourceFile" # static fields .field public static final BlockingContext:Lkotlinx/coroutines/scheduling/TaskContext; .field public static final CORE_POOL_SIZE:I .field public static final DEFAULT_SCHEDULER_NAME:Ljava/lang/String; .field public static final IDLE_WORKER_KEEP_ALIVE_NS:J .field public static final MAX_POOL_SIZE:I .field public static final NonBlockingContext:Lkotlinx/coroutines/scheduling/TaskContext; .field public static final WORK_STEALING_TIME_RESOLUTION_NS:J .field public static schedulerTimeSource:Lkotlinx/coroutines/scheduling/SchedulerTimeSource; # direct methods .method static constructor ()V .locals 10 const-string v0, "kotlinx.coroutines.scheduler.default.name" const-string v1, "DefaultDispatcher" .line 16 invoke-static {v0, v1}, Lkotlinx/coroutines/internal/SystemPropsKt;->systemProp(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 sput-object v0, Lkotlinx/coroutines/scheduling/TasksKt;->DEFAULT_SCHEDULER_NAME:Ljava/lang/String; const-string v1, "kotlinx.coroutines.scheduler.resolution.ns" const-wide/32 v2, 0x186a0 const-wide/16 v4, 0x0 const-wide/16 v6, 0x0 const/16 v8, 0xc const/4 v9, 0x0 .line 22 invoke-static/range {v1 .. v9}, Lkotlinx/coroutines/internal/SystemPropsKt;->systemProp$default(Ljava/lang/String;JJJILjava/lang/Object;)J move-result-wide v0 sput-wide v0, Lkotlinx/coroutines/scheduling/TasksKt;->WORK_STEALING_TIME_RESOLUTION_NS:J const-string v2, "kotlinx.coroutines.scheduler.core.pool.size" .line 35 invoke-static {}, Lkotlinx/coroutines/internal/SystemPropsKt;->getAVAILABLE_PROCESSORS()I move-result v0 const/4 v1, 0x2 invoke-static {v0, v1}, Lkotlin/ranges/RangesKt;->coerceAtLeast(II)I move-result v3 const/4 v4, 0x1 const/4 v5, 0x0 const/16 v6, 0x8 const/4 v7, 0x0 .line 33 invoke-static/range {v2 .. v7}, Lkotlinx/coroutines/internal/SystemPropsKt;->systemProp$default(Ljava/lang/String;IIIILjava/lang/Object;)I move-result v0 sput v0, Lkotlinx/coroutines/scheduling/TasksKt;->CORE_POOL_SIZE:I const-string v1, "kotlinx.coroutines.scheduler.max.pool.size" const v2, 0x1ffffe const/4 v3, 0x0 const v4, 0x1ffffe const/4 v5, 0x4 const/4 v6, 0x0 .line 41 invoke-static/range {v1 .. v6}, Lkotlinx/coroutines/internal/SystemPropsKt;->systemProp$default(Ljava/lang/String;IIIILjava/lang/Object;)I move-result v0 sput v0, Lkotlinx/coroutines/scheduling/TasksKt;->MAX_POOL_SIZE:I .line 48 sget-object v0, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit; const-string v1, "kotlinx.coroutines.scheduler.keep.alive.sec" const-wide/16 v2, 0x3c const-wide/16 v4, 0x0 const-wide/16 v6, 0x0 .line 49 invoke-static/range {v1 .. v9}, Lkotlinx/coroutines/internal/SystemPropsKt;->systemProp$default(Ljava/lang/String;JJJILjava/lang/Object;)J move-result-wide v1 .line 48 invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/TimeUnit;->toNanos(J)J move-result-wide v0 sput-wide v0, Lkotlinx/coroutines/scheduling/TasksKt;->IDLE_WORKER_KEEP_ALIVE_NS:J .line 53 sget-object v0, Lkotlinx/coroutines/scheduling/NanoTimeSource;->INSTANCE:Lkotlinx/coroutines/scheduling/NanoTimeSource; sput-object v0, Lkotlinx/coroutines/scheduling/TasksKt;->schedulerTimeSource:Lkotlinx/coroutines/scheduling/SchedulerTimeSource; .line 77 new-instance v0, Lkotlinx/coroutines/scheduling/TaskContextImpl; const/4 v1, 0x0 invoke-direct {v0, v1}, Lkotlinx/coroutines/scheduling/TaskContextImpl;->(I)V sput-object v0, Lkotlinx/coroutines/scheduling/TasksKt;->NonBlockingContext:Lkotlinx/coroutines/scheduling/TaskContext; .line 80 new-instance v0, Lkotlinx/coroutines/scheduling/TaskContextImpl; const/4 v1, 0x1 invoke-direct {v0, v1}, Lkotlinx/coroutines/scheduling/TaskContextImpl;->(I)V sput-object v0, Lkotlinx/coroutines/scheduling/TasksKt;->BlockingContext:Lkotlinx/coroutines/scheduling/TaskContext; return-void .end method