Commit Graph

2291 Commits

Author SHA1 Message Date
Philipp Oppermann
6163821401 Merge pull request #767 from phil-opp/async-await
New post about Async/Await
2020-03-27 17:34:42 +01:00
Philipp Oppermann
4f8858f75d Update Readme for new async/await post 2020-03-27 17:31:19 +01:00
Philipp Oppermann
fb2b6f3685 Update chapter name of post 2020-03-27 17:30:37 +01:00
Philipp Oppermann
5286828cb8 Set release date for post 2020-03-27 17:24:06 +01:00
Philipp Oppermann
d29a28591e Finish the post 2020-03-27 17:23:29 +01:00
Philipp Oppermann
da58c31ed4 Fill in required nightly version and note missing rustfmt 2020-03-26 18:23:21 +01:00
Philipp Oppermann
55bfb1d550 Minor improvements 2020-03-26 18:12:25 +01:00
Philipp Oppermann
4d326ef806 Ignore linkedin.com in link checking 2020-03-26 17:24:40 +01:00
Philipp Oppermann
117fcbddd4 Resolve remaining TODO-links 2020-03-26 17:18:22 +01:00
Philipp Oppermann
46fbd2454c Add TODO for updating release date before publishing 2020-03-26 17:02:20 +01:00
Philipp Oppermann
fe0c8ccb0c Add job seeking note 2020-03-26 17:02:01 +01:00
Philipp Oppermann
e76e71f285 Write introduction 2020-03-26 17:01:39 +01:00
Philipp Oppermann
358a05c0fa Fix some typos 2020-03-26 13:42:05 +01:00
Philipp Oppermann
1264a44aa0 Don't check links to github.com because of rate limiting 2020-03-26 13:42:05 +01:00
Philipp Oppermann
9c96651e70 Write summary and what's next sections 2020-03-26 13:42:05 +01:00
Philipp Oppermann
8e758c383c Finish implementation of executor with waker support 2020-03-26 13:42:05 +01:00
Philipp Oppermann
886d7411ae Begin working on executor with waker support 2020-03-26 13:42:05 +01:00
Philipp Oppermann
7600a763a2 Unregister keyboard waker when we can continue
Avoids that the waker stored in the waker_cache in the executor is dropped first. Thus, it avoids that the waker is deallocated inside interrupt handlers.
2020-03-26 13:42:05 +01:00
Philipp Oppermann
8d3cdf62e3 Add keyboard output gif 2020-03-26 13:42:05 +01:00
Philipp Oppermann
9e5e993a1b Fix typo 2020-03-26 13:42:05 +01:00
Philipp Oppermann
5a879058c9 Minor fixes 2020-03-26 13:42:05 +01:00
Philipp Oppermann
c26d36ebce Prevent deadlock by basing DummyWaker directly on RawWaker
Don't use Arc for DummyWaker. It causes a drop in the `add_scancode` function, which can easily lead to a deadlock because the function is called directly from the interrupt handler.
2020-03-26 13:42:05 +01:00
Philipp Oppermann
89f5350ac4 Start explaining the deadlock problem caused by Arc dealloc 2020-03-26 13:42:05 +01:00
Philipp Oppermann
c423363266 Small fixes to text and code examples 2020-03-26 13:42:05 +01:00
Philipp Oppermann
000adfb2be Create a keyboard task and use it with our SimpleExecutor 2020-03-26 13:42:05 +01:00
Philipp Oppermann
4f29fdea72 Add Waker support to the poll_next implementation on ScancodeStream 2020-03-26 13:42:05 +01:00
Philipp Oppermann
c3648e4b20 Implement Stream for ScancodeStream 2020-03-26 13:42:05 +01:00
Philipp Oppermann
dd83feec2d Add section about filling the scancode queue 2020-03-26 13:42:05 +01:00
Philipp Oppermann
45afd2032b Add section about scancode queue 2020-03-26 13:42:05 +01:00
Philipp Oppermann
744314cb3a Begin section about async keyboard interrupt 2020-03-26 13:41:25 +01:00
Philipp Oppermann
1907e5d3ce Summarize execution steps for the simple executor example 2020-03-26 13:41:25 +01:00
Philipp Oppermann
50db561774 Update implementation section 2020-03-26 13:41:25 +01:00
Philipp Oppermann
326a35939a Start implementation section 2020-03-26 13:41:25 +01:00
Philipp Oppermann
ae167faee5 Explain how async/await implements cooperative multitasking 2020-03-26 13:41:25 +01:00
Philipp Oppermann
fb0f30b9f0 Write section about executors and wakers 2020-03-26 13:41:25 +01:00
Philipp Oppermann
75e2626dc0 Some minor improvements 2020-03-26 13:41:25 +01:00
Philipp Oppermann
def0e6762d Add images for pinning section 2020-03-26 13:41:25 +01:00
Rob Gries
ba6452c5b0 Fix typos (#759) 2020-03-26 13:41:25 +01:00
Philipp Oppermann
817c0c56ab Fix typo 2020-03-26 13:41:25 +01:00
Philipp Oppermann
81f71982f4 Finish first draft of pinning section 2020-03-26 13:41:25 +01:00
Philipp Oppermann
bf07f26e73 Begin section about pinning 2020-03-26 13:41:25 +01:00
Philipp Oppermann
642ff0f27f Minor improvement 2020-03-26 13:41:25 +01:00
Philipp Oppermann
58faf5adf0 Remove old section 2020-03-26 13:41:25 +01:00
Philipp Oppermann
868a6f03ec Add explantion for state machine code 2020-03-26 13:41:25 +01:00
Philipp Oppermann
2ff011ffba Split code example into individual match cases; add code for example 2020-03-26 13:41:25 +01:00
Philipp Oppermann
7ce491df53 Start creating full state machine for example 2020-03-26 13:41:25 +01:00
Philipp Oppermann
3d89841a51 Update async/await sections and 'saving state' section 2020-03-26 13:41:25 +01:00
Philipp Oppermann
3cff5d0961 Small improvements 2020-03-26 13:41:25 +01:00
Philipp Oppermann
51a02a4064 Typo fix 2020-03-26 13:41:25 +01:00
Philipp Oppermann
752accdd33 Explain how to work with futures and introduce async/await 2020-03-26 13:41:25 +01:00