-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve Mio windows support #3
Comments
Hey! I'm interested in taking part in the project, but I'm not sure what is meant by "the strategy used by wepoll." Are you planning to build a custom version of the epoll API? I'm also extremely new to rust. Do you know any good places I can go to to learn more about the language? |
@kingoftheconnors Yes, wepoll exposes an epoll-like API ( I don't speak for mio/tokio, but I assume the expectation is to implement it in pure Rust and then use it in mio instead of That way a lot of the IOCP and buffer-pool related code inside General info about wepoll: wepoll works by opening a handle to the AFD device, then uses The ioctl is essentially how the (public) The AFD poll events map reasonably closely to the epoll events, so the library is able to translate one set of events to the other. (I found it easier to understand how it works by reading the dist file at https://github.com/piscisaureus/wepoll/blob/dist/wepoll.c compared to the split files in master, and following the call graph down from (*) I brought this up with the Windows networking team, and they were quite surprised to learn that libuv has been using it since 2012. It is important to note that it is not a public API, so there is no guarantee that it will continue to work. |
I'm interested in this subject too, I'm reading up on lots of sources related to this subject and mio. And hope to find some common ground for both Mio and wepoll. Is there any time estimation for this project? |
@TimonPost It is hard to really say how long as the answer will be very dependent on the student. However, it should take a minimum of a few weeks but be doable in a summer. The project is very "stretchy", so it should take up the entire summer :) |
I came across those libraries, they are bindings for the wepoll library. |
I'm also interested in this subject too. I made a pull request about this. |
Mio is a low level abstraction on top of the operating system's evented I/O
APIs. It is used by Tokio to integrate with the operating system and perform the
I/O operations. The current Windows implementation is not ideal. A better
solution is outlined in
piscisaureus/wepoll.
Expected outcomes
The windows Mio implementation is rewritten using the strategy used by wepoll.
Skills
Difficulty level
Medium
The text was updated successfully, but these errors were encountered: