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
Philipp Oppermann
bdcd392dbf
Start explaining futures in Rust
2020-03-26 13:40:34 +01:00
Philipp Oppermann
6f7c5a35dd
Begin a new post about async/await
2020-03-26 13:40:34 +01:00
StackDoubleFlow
4feaffe102
Use a instead of an before a constant ( #766 )
2020-03-17 08:48:17 +01:00
Philipp Oppermann
e0686209f4
Fix cargo doc links that were moved
...
Move occured in https://github.com/rust-lang/cargo/pull/7733 and was just released together with Rust 1.42.
2020-03-13 13:47:26 +01:00