Commit Graph

2229 Commits

Author SHA1 Message Date
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
Philipp Oppermann
e061557eea Use <h2> for site title for first edition too 2020-03-11 13:51:22 +01:00
Patrick
aeafe57c5d Removed unnecessary word (#765)
Removed the word "executes" from "The CPU executes tries to write to `0xdeadbeef`, which causes a page fault."
2020-03-11 13:07:22 +01:00
Philipp Oppermann
e84b6f4084 Merge pull request #764 from phil-opp/x86_64-0.9.6
Update x86_64 dependency to version 0.9.6
2020-03-08 14:40:32 +01:00
Philipp Oppermann
82c6a5dd60 Update x86_64 dependency to version 0.9.6 2020-03-08 14:38:38 +01:00
Philipp Oppermann
f9002f9f9b Update Heap Allocation post for new spinlock type of linked_list_allocator 2020-03-06 14:56:07 +01:00
Philipp Oppermann
bf4c928214 Update Heap Allocation post for #763 2020-03-06 11:50:29 +01:00
Philipp Oppermann
bdf161aa7d Merge pull request #760 from phil-opp/status-update
Updates in February 2020
2020-03-02 11:49:06 +01:00
Philipp Oppermann
bfdc1e96a6 Create February status update 2020-03-02 11:42:19 +01:00