package com.example.socialkotlin
import android.graphics.Color.*
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import java.util.concurrent.Executors
import kotlin.system.*
import kotlinx.android.synthetic.main.content_main.*
import kotlinx.coroutines.*

suspend fun sendEmail(r: String, msg: String): Boolean { // (6)
delay(2000)
Log.d("TAG", "Sent '$msg' to $r"
return true
}

suspend fun getReceiverAddressFromDatabase(): String { // (4)
delay(1000)
return "coroutine@kotlin.org"
}

suspend fun sendEmailSuspending(): Boolean {
val msg = async(CommonPool) { // (3)
delay(500)
"The message content"
}
val recipient = async(CommonPool) { // (5)
getReceiverAddressFromDatabase()
}
Log.d("TAG", "Waiting for email data"
val sendStatus = async(CommonPool) {
sendEmail(recipient.await(), msg.await()) // (7)
}
return sendStatus.await() // (8)
}

class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
Log.d("TAG", "----------------------------"

val threadPoolExecutor = Executors.newCachedThreadPool()
// val threadPoolExecutor = Executors.newFixedThreadPool(5)
val threadPool = threadPoolExecutor.asCoroutineDispatcher()

val job = launch(threadPool) {
sendEmailSuspending() // (2)
Log.d("TAG", "Email sent successfully."
}
job.join() // (9)
Log.d("TAG", "Finished"

super.onCreate(savedInstanceState)
setContentView(R.layout.content_main)
text_id.setText("zzz2"
// text_id.setText(getWarmth(c).toString())
}
}
}}}

out:
```> Task :app:compileDebugKotlin FAILED
e: /home/user/media/source_project/socialkotlin/app/src/main/java/com/example/socialkotlin/MainActivity.kt: (23, 15): Unresolved reference: async
e: /home/user/media/source_project/socialkotlin/app/src/main/java/com/example/socialkotlin/MainActivity.kt: (23, 21): Cannot access 'CommonPool': it is internal in 'kotlinx.coroutines'
e: /home/user/media/source_project/socialkotlin/app/src/main/java/com/example/socialkotlin/MainActivity.kt: (24, 9): Suspension functions can be called only within coroutine body
e: /home/user/media/source_project/socialkotlin/app/src/main/java/com/example/socialkotlin/MainActivity.kt: (27, 21): Unresolved reference: async
e: /home/user/media/source_project/socialkotlin/app/src/main/java/com/example/socialkotlin/MainActivity.kt: (27, 27): Cannot access 'CommonPool': it is internal in 'kotlinx.coroutines'
e: /home/user/media/source_project/socialkotlin/app/src/main/java/com/example/socialkotlin/MainActivity.kt: (28, 9): Suspension functions can be called only within coroutine body
e: /home/user/media/source_project/socialkotlin/app/src/main/java/com/example/socialkotlin/MainActivity.kt: (31, 22): Unresolved reference: async
e: /home/user/media/source_project/socialkotlin/app/src/main/java/com/example/socialkotlin/MainActivity.kt: (31, 28): Cannot access 'CommonPool': it is internal in 'kotlinx.coroutines'
e: /home/user/media/source_project/socialkotlin/app/src/main/java/com/example/socialkotlin/MainActivity.kt: (32, 9): Suspension functions can be called only within coroutine body
e: /home/user/media/source_project/socialkotlin/app/src/main/java/com/example/socialkotlin/MainActivity.kt: (45, 19): Unresolved reference. None of the following candidates is applicable because of receiver t
public fun CoroutineScope.launch(context: CoroutineContext = ..., start: CoroutineStart = ..., block: suspend CoroutineScope.() -> Unit): Job defined in kotlinx.coroutines
e: /home/user/media/source_project/socialkotlin/app/src/main/java/com/example/socialkotlin/MainActivity.kt: (45, 26): Cannot access 'CommonPool': it is internal in 'kotlinx.coroutines'
e: /home/user/media/source_project/socialkotlin/app/src/main/java/com/example/socialkotlin/MainActivity.kt: (46, 13): Suspend function 'sendEmailSuspending' should be called only from a coroutine or another s









 , ,






URL записи