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
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
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
6beedbdba9
Merge pull request #758 from phil-opp/pc-keyboard-0.5.0
...
Hardware Interrupts: Update pc-keyboard crate to v0.5.0
2020-02-26 12:20:01 +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