Index276 complex instruction set computers (CISC) 97 concurrency 9 relation, to I/O 11 right reference frame, selecting 12 use cases 11 versus asynchronous programming 12 versus parallelism 7, 8, 9, 10 concurrent 8 continuation-passing style 39 cooperative multitasking 5, 26 corofy 155, 156 coroutine implementation 227-229 coroutine preprocessor 155, 156 coroutines 39 advantages 40 creating 147-153 drawbacks 41 implementation 149 states 148 coroutine/wait syntax 155 CPU architecture 97 cross-platform abstractions 51 cross-platform event queues 50, 51 custom fibers implementing 112-115 runtime, implementing 115-121 D direct memory access controller ( DMAC) 21 direct memory access (DMA) 21 DNS lookup 72 driver 21E edge-triggered event versus level-triggered event 78-81 Embassy 169 epoll 47, 49 designing to 66-71 epoll/kqueue OS-backed event, queuing via 47 example project running 107, 108 setting up 103-105 executor 170, 171 executor. rs 256-259 F ffi module 73-76 bitflags 76, 78 bitmasks 76, 78 level-triggered event, versus edge-triggered event 78-81 fibers and green threads 33 context switching 35 FFI functions 36 scheduling 35 task, setting up with stack of fixed size 34, 35 file descriptors 52 file I/O 72, 73 Firmware 22 foreign function interface (FFI) 36, 43, 51 advantages and drawbacks 36 future 38, 39, 130 definition, changing 191, 192 poll phase 130 wait phase 130 wake phase 130