aboutsummaryrefslogtreecommitdiffstats
path: root/kotlinx-coroutines-core/js/src/EventLoop.kt
diff options
context:
space:
mode:
Diffstat (limited to 'kotlinx-coroutines-core/js/src/EventLoop.kt')
-rw-r--r--kotlinx-coroutines-core/js/src/EventLoop.kt27
1 files changed, 27 insertions, 0 deletions
diff --git a/kotlinx-coroutines-core/js/src/EventLoop.kt b/kotlinx-coroutines-core/js/src/EventLoop.kt
new file mode 100644
index 00000000..19d75c09
--- /dev/null
+++ b/kotlinx-coroutines-core/js/src/EventLoop.kt
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2016-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+package kotlinx.coroutines
+
+import kotlin.coroutines.*
+
+internal actual fun createEventLoop(): EventLoop = UnconfinedEventLoop()
+
+internal actual fun nanoTime(): Long = unsupported()
+
+internal class UnconfinedEventLoop : EventLoop() {
+ override fun dispatch(context: CoroutineContext, block: Runnable): Unit = unsupported()
+}
+
+internal actual abstract class EventLoopImplPlatform : EventLoop() {
+ protected actual fun unpark(): Unit = unsupported()
+ protected actual fun reschedule(now: Long, delayedTask: EventLoopImplBase.DelayedTask): Unit = unsupported()
+}
+
+internal actual object DefaultExecutor {
+ public actual fun enqueue(task: Runnable): Unit = unsupported()
+}
+
+private fun unsupported(): Nothing =
+ throw UnsupportedOperationException("runBlocking event loop is not supported")