.class public final Lkotlinx/coroutines/scheduling/DefaultIoScheduler; .super Lkotlinx/coroutines/ExecutorCoroutineDispatcher; .source "SourceFile" # interfaces .implements Ljava/util/concurrent/Executor; # static fields .field public static final INSTANCE:Lkotlinx/coroutines/scheduling/DefaultIoScheduler; .field public static final default:Lkotlinx/coroutines/CoroutineDispatcher; # direct methods .method static constructor ()V .locals 7 new-instance v0, Lkotlinx/coroutines/scheduling/DefaultIoScheduler; invoke-direct {v0}, Lkotlinx/coroutines/scheduling/DefaultIoScheduler;->()V sput-object v0, Lkotlinx/coroutines/scheduling/DefaultIoScheduler;->INSTANCE:Lkotlinx/coroutines/scheduling/DefaultIoScheduler; .line 61 sget-object v0, Lkotlinx/coroutines/scheduling/UnlimitedIoScheduler;->INSTANCE:Lkotlinx/coroutines/scheduling/UnlimitedIoScheduler; const-string v1, "kotlinx.coroutines.io.parallelism" const/16 v2, 0x40 .line 64 invoke-static {}, Lkotlinx/coroutines/internal/SystemPropsKt;->getAVAILABLE_PROCESSORS()I move-result v3 invoke-static {v2, v3}, Lkotlin/ranges/RangesKt;->coerceAtLeast(II)I move-result v2 const/4 v3, 0x0 const/4 v4, 0x0 const/16 v5, 0xc const/4 v6, 0x0 .line 62 invoke-static/range {v1 .. v6}, Lkotlinx/coroutines/internal/SystemPropsKt;->systemProp$default(Ljava/lang/String;IIIILjava/lang/Object;)I move-result v1 .line 61 invoke-virtual {v0, v1}, Lkotlinx/coroutines/scheduling/UnlimitedIoScheduler;->limitedParallelism(I)Lkotlinx/coroutines/CoroutineDispatcher; move-result-object v0 sput-object v0, Lkotlinx/coroutines/scheduling/DefaultIoScheduler;->default:Lkotlinx/coroutines/CoroutineDispatcher; return-void .end method .method public constructor ()V .locals 0 .line 59 invoke-direct {p0}, Lkotlinx/coroutines/ExecutorCoroutineDispatcher;->()V return-void .end method # virtual methods .method public close()V .locals 2 new-instance v0, Ljava/lang/IllegalStateException; const-string v1, "Cannot be invoked on Dispatchers.IO" .line 89 invoke-virtual {v1}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw v0 .end method .method public dispatch(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V .locals 1 sget-object v0, Lkotlinx/coroutines/scheduling/DefaultIoScheduler;->default:Lkotlinx/coroutines/CoroutineDispatcher; .line 80 invoke-virtual {v0, p1, p2}, Lkotlinx/coroutines/CoroutineDispatcher;->dispatch(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V return-void .end method .method public dispatchYield(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V .locals 1 sget-object v0, Lkotlinx/coroutines/scheduling/DefaultIoScheduler;->default:Lkotlinx/coroutines/CoroutineDispatcher; .line 85 invoke-virtual {v0, p1, p2}, Lkotlinx/coroutines/CoroutineDispatcher;->dispatchYield(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V return-void .end method .method public execute(Ljava/lang/Runnable;)V .locals 1 .line 71 sget-object v0, Lkotlin/coroutines/EmptyCoroutineContext;->INSTANCE:Lkotlin/coroutines/EmptyCoroutineContext; invoke-virtual {p0, v0, p1}, Lkotlinx/coroutines/scheduling/DefaultIoScheduler;->dispatch(Lkotlin/coroutines/CoroutineContext;Ljava/lang/Runnable;)V return-void .end method .method public getExecutor()Ljava/util/concurrent/Executor; .locals 0 return-object p0 .end method .method public limitedParallelism(I)Lkotlinx/coroutines/CoroutineDispatcher; .locals 1 .line 76 sget-object v0, Lkotlinx/coroutines/scheduling/UnlimitedIoScheduler;->INSTANCE:Lkotlinx/coroutines/scheduling/UnlimitedIoScheduler; invoke-virtual {v0, p1}, Lkotlinx/coroutines/scheduling/UnlimitedIoScheduler;->limitedParallelism(I)Lkotlinx/coroutines/CoroutineDispatcher; move-result-object p1 return-object p1 .end method .method public toString()Ljava/lang/String; .locals 1 const-string v0, "Dispatchers.IO" return-object v0 .end method