Commit Graph

1214 Commits

Author SHA1 Message Date
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
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
bfdc1e96a6 Create February status update 2020-03-02 11:42:19 +01:00
Philipp Oppermann
368b5445e4 Update 'thank you' text 2020-03-02 11:41:53 +01:00
Philipp Oppermann
6b76338407 Add a .gray css class for making things gray 2020-03-02 11:41:41 +01:00
Philipp Oppermann
fb920af5dc Hardware Interrupts: Update pc-keyboard crate to v0.5.0 2020-02-26 12:17:35 +01:00
Philipp Oppermann
acea700708 Fix overlap of 'All Posts' and ToC; add comments to ToC
The 'All Posts' link used to overlap with the table of contents at the end of a post. This occured because the ToC is sticky to the `main` block, so it scrolled up before the `comments` section. The 'All Post' link, however, is fixed, so it does not scroll up.

This commit fixes the issue by moving the comment block to the main block (from the after_main block). This way, the ToC stays visible in the comment section. We also add the comment section to the ToC.
2020-02-25 14:26:41 +01:00
Philipp Oppermann
0619f3a9e7 Convert all external links to https (if supported) 2020-02-21 11:53:34 +01:00
Philipp Oppermann
361108b88e Move language selector to the top 2020-02-21 11:29:11 +01:00