enum class TransferMode
Objects can be passed between threads in one of two possible modes.
Safe mode checks if object is no longer used in passing worker, using memory-management specific algorithm (ARC implementation relies on trial deletion on object graph rooted in passed object), and throws an IllegalStateException if object graph rooted in transferred object is reachable by some other means,
Unsafe mode is intended for most performance critical operations, where object graph ownership is expected to be correct (such as application debugged earlier in SAFE mode), just transfers ownership without further checks.
Note, that for some cases cycle collection need to be done to ensure that dead cycles do not affect reachability of passed object graph.
See Also
kotlin.native.internal.GC.collect
Reachibility check is performed.
Skip reachibility check, can lead to mysterious crashes in an application. USE UNSAFE MODE ONLY IF ABSOLUTELY SURE WHAT YOU'RE DOING!!!
val value: Int
© 2010–2020 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.native.concurrent/-transfer-mode/index.html