aboutsummaryrefslogtreecommitdiff
path: root/docs/pages/overview.adoc
diff options
context:
space:
mode:
authorDiego Barrios Romero <[email protected]>2025-01-11 16:23:30 +0100
committerDiego Barrios Romero <[email protected]>2025-01-11 16:23:30 +0100
commit9cd2deba4d7da2b607613c98b004896512e9aabf (patch)
tree4aeeed64f6d1bad60d1907eb141e5f3830116981 /docs/pages/overview.adoc
parentfc7e94ae763592055e180edff3fabf26e5d22ab7 (diff)
Fix typo
Diffstat (limited to 'docs/pages/overview.adoc')
-rw-r--r--docs/pages/overview.adoc2
1 files changed, 1 insertions, 1 deletions
diff --git a/docs/pages/overview.adoc b/docs/pages/overview.adoc
index 6e9e58ad3..6ac0e0b2b 100644
--- a/docs/pages/overview.adoc
+++ b/docs/pages/overview.adoc
@@ -6,7 +6,7 @@ Embassy is a project to make async/await a first-class option for embedded devel
6 6
7When handling I/O, software must call functions that block program execution until the I/O operation completes. When running inside of an OS such as Linux, such functions generally transfer control to the kernel so that another task (known as a “thread”) can be executed if available, or the CPU can be put to sleep until another task is ready. 7When handling I/O, software must call functions that block program execution until the I/O operation completes. When running inside of an OS such as Linux, such functions generally transfer control to the kernel so that another task (known as a “thread”) can be executed if available, or the CPU can be put to sleep until another task is ready.
8 8
9Because an OS cannot presume that threads will behave cooperatively, threads are relatively resource-intensive, and may be forcibly interrupted they do not transfer control back to the kernel within an allotted time. If tasks could be presumed to behave cooperatively, or at least not maliciously, it would be possible to create tasks that appear to be almost free when compared to a traditional OS thread. 9Because an OS cannot presume that threads will behave cooperatively, threads are relatively resource-intensive, and may be forcibly interrupted if they do not transfer control back to the kernel within an allotted time. If tasks could be presumed to behave cooperatively, or at least not maliciously, it would be possible to create tasks that appear to be almost free when compared to a traditional OS thread.
10 10
11In other programming languages, these lightweight tasks are known as “coroutines” or ”goroutines”. In Rust, they are implemented with async. Async-await works by transforming each async function into an object called a future. When a future blocks on I/O the future yields, and the scheduler, called an executor, can select a different future to execute. 11In other programming languages, these lightweight tasks are known as “coroutines” or ”goroutines”. In Rust, they are implemented with async. Async-await works by transforming each async function into an object called a future. When a future blocks on I/O the future yields, and the scheduler, called an executor, can select a different future to execute.
12 12