3 ms·
The Rust language defines the semantics of async functions, but doesn't provide anything that runs them. Usually when you write async Rust code, you import a li
by db48x 4y ago
The Rust language defines the semantics of async functions, but doesn't provide anything that runs them. Usually when you write async Rust code, you import a library that implements one or more ways of running async futures for you.
Doimg this in the kernel complicates things; it can't just import tokio like most Rust programs.
This pull request has three commits. The first modifies some C code slightly, and adds a helper so that it can be used from Rust code. (Most of this is actually a C macro, rather than a function that can be called).
The second commit implements a simple executor for async code, which stores tasks to be completed in the future in a workqueue. The workqueue already existed in the kernel.
The fin commit is the echo server, written in async Rust and executed using the executor from the previous commit.
- mfrw 4y agoThank you, my question was a little different. If I check the logs of the merged PR, I can only see one commit; while this PR has 3 commits. It's more of a git question, why did the merge not have all the 3 commits. My git skills are less than beginner.
- db48x 4y agohttps://github.com/Rust-for-Linux/linux/commits/rust https://github.com/Rust-for-Linux/linux/commits/rust You can see that four merge requests were taken at the same time. #802 is unrelated, while #752, #798, and #796 are related to the echo server. It appears that the author created a merge request for each of the three commits. The three commits are on the lines below.
- mfrw 4y agoAhhh .. thank you :) I think now things make a little sense :) I was starting to think `git being git`