aboutsummaryrefslogtreecommitdiff
path: root/std/async.pk
diff options
context:
space:
mode:
Diffstat (limited to 'std/async.pk')
-rw-r--r--std/async.pk6
1 files changed, 5 insertions, 1 deletions
diff --git a/std/async.pk b/std/async.pk
index 7c76076..f2ae3e0 100644
--- a/std/async.pk
+++ b/std/async.pk
@@ -1,5 +1,6 @@
## std.async: Zig-style colourless async/await.
## Future types, the async macro, and the await function.
+# reference: https://kristoff.it/blog/zig-colorblind-async-await/
## A standard Future type. Opaque.
pub type Future[T] = struct
@@ -7,6 +8,9 @@ pub type Future[T] = struct
## The `async` macro transforms any function call into
## an asynchronous call returning a Future of some type.
+##
+## This does not "just work". Compiler magic is necessary to package up
+## *any* block into something independently callable.
pub macro async[T](call: T): Future[T] =
...
@@ -14,6 +18,6 @@ pub macro async[T](call: T): Future[T] =
pub func await[T](self: Future[T]): T =
...
-examples:
+examples
std.net.connect()
print 1.async.await