/* Ċ * ĠCopyright Ġ 2 0 1 4 - 2 0 2 1 ĠJetBrains Ġs . r . o Ġand Ġcontributors . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ */ Ċ Ċ package Ġio . ktor . client . engine Ċ Ċ import Ġio . ktor . util .* Ċ import Ġio . ktor . utils . io .* Ċ import Ġkotlinx . coroutines .* Ċ import Ġkotlin . coroutines .* Ċ Ċ /** Ċ Ġ* ĠCreate Ġcall Ġcontext Ġwith Ġthe Ġspecified Ġ[ parent Job ] Ġto Ġbe Ġused Ġduring Ġcall Ġexecution Ġin Ġthe Ġengine . ĠCall Ġcontext Ċ Ġ* Ġinherits Ġ[ coroutine Context ], Ġbut Ġoverrides Ġjob Ġand Ġcoroutine Ġname Ġso Ġthat Ġcall Ġjob 's Ġparent Ġis Ġ[ parent Job ] Ġand Ċ Ġ* Ġcall Ġcoroutine 's Ġname Ġis Ġ" call - context ". Ċ Ġ*/ Ċ internal Ġactual Ġsuspend Ġfun ĠHttpClient Engine . create Call Context ( parent Job : ĠJob ): ĠCor outine Context Ġ{ ĊĠĠĠ Ġparent Job . make Shared () ĊĠĠĠ Ġval Ġcall Job Ġ= ĠJob ( parent Job ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġmake Shared () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġattach To User Job ( call Job ) ĊĊĠĠĠ Ġreturn Ġ( function Context () Ġ+ Ġcall Job Ġ+ ĠCALL _ COR OUT INE ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġmake Shared () ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġsuspend Ġinline Ġfun Ġfunction Context (): ĠCor outine Context Ġ= Ġcoroutine Context Ċ