(Connection) -> A): A { try { this.sendQuery("BEGIN") val result = f(this) this.sendQuery("COMMIT") return result } catch (e: Throwable) { this.sendQuery("ROLLBACK") throw e } }
current = completion param = outcome Continuation Completion - The parent Continuation invokeSuspend() - The installed callback; the method to return to label - where to return in the method
current = completion param = outcome Continuation Completion - The parent Continuation invokeSuspend() - The installed callback; the method to return to label - where to return in the method Repeat until root continuation