aboutsummaryrefslogtreecommitdiffstats
path: root/kotlinx-coroutines-core/common/src/CoroutineName.kt
diff options
context:
space:
mode:
Diffstat (limited to 'kotlinx-coroutines-core/common/src/CoroutineName.kt')
-rw-r--r--kotlinx-coroutines-core/common/src/CoroutineName.kt29
1 files changed, 29 insertions, 0 deletions
diff --git a/kotlinx-coroutines-core/common/src/CoroutineName.kt b/kotlinx-coroutines-core/common/src/CoroutineName.kt
new file mode 100644
index 00000000..4a7e9ea4
--- /dev/null
+++ b/kotlinx-coroutines-core/common/src/CoroutineName.kt
@@ -0,0 +1,29 @@
+/*
+ * 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.AbstractCoroutineContextElement
+import kotlin.coroutines.CoroutineContext
+
+/**
+ * User-specified name of coroutine. This name is used in debugging mode.
+ * See [newCoroutineContext][CoroutineScope.newCoroutineContext] for the description of coroutine debugging facilities.
+ */
+public data class CoroutineName(
+ /**
+ * User-defined coroutine name.
+ */
+ val name: String
+) : AbstractCoroutineContextElement(CoroutineName) {
+ /**
+ * Key for [CoroutineName] instance in the coroutine context.
+ */
+ public companion object Key : CoroutineContext.Key<CoroutineName>
+
+ /**
+ * Returns a string representation of the object.
+ */
+ override fun toString(): String = "CoroutineName($name)"
+}