diff options
author | Llewellyn Pritchard <xacc.ide@gmail.com> | 2022-12-09 07:19:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-09 07:19:55 +0200 |
commit | 3a002917a3c7ff476aa23c26c34c4faf209d5c07 (patch) | |
tree | c09de8650a03daaf56c9c4d03b92e19ae1f6aaf4 | |
parent | 8736da8e64c64b41161f3393aaf48fff514005f1 (diff) | |
parent | 72bed17af2ca697ed51b94fe9e15c42d5aa386a4 (diff) |
Merge pull request #142 from Zambito1/async1.0.320
Use dynamic instead of Object to support different kinds of Tasks
-rw-r--r-- | IronScheme/IronScheme.Console/lib/ironscheme/async.sls | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/IronScheme/IronScheme.Console/lib/ironscheme/async.sls b/IronScheme/IronScheme.Console/lib/ironscheme/async.sls index 5c2d8c7c..783b20a1 100644 --- a/IronScheme/IronScheme.Console/lib/ironscheme/async.sls +++ b/IronScheme/IronScheme.Console/lib/ironscheme/async.sls @@ -13,7 +13,8 @@ See docs/license.txt. |# status task?) (import (ironscheme) - (ironscheme clr)) + (ironscheme clr) + (ironscheme clr dynamic)) (clr-using System.Threading.Tasks) (clr-using System.Runtime.CompilerServices) @@ -53,7 +54,8 @@ See docs/license.txt. |# ;; Await the task and return the result. (define (await task) (start task) - (clr-call (TaskAwaiter Object) GetResult (clr-call (Task Object) GetAwaiter task))) + (let ((awaiter (clr-dynamic task GetAwaiter))) + (clr-dynamic awaiter GetResult))) ;; Can be called any number of times without error, unlike Task.Start() ;; Returns the started task. |