-
Notifications
You must be signed in to change notification settings - Fork 353
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
Complete and fix our eventfd implementation #3445
Comments
Also the check here is bogus: miri/src/shims/unix/linux/eventfd.rs Lines 109 to 111 in 99be2b7
That should be EDIT: but turns out we have the flags tokio needs. |
This should probably be fixed by implementing a proper notion of "file description", and making the file descriptor table a simple indirection for file descriptions. That would fix |
Hey @RalfJung I would like to give this a shot. May I just |
Please coordinate with @oli-obk -- I saw something about a potential GSoC project for epoll support, and I assume this would be part of it. |
cc @tiif There's probably some parallel development that can be done, but the file descriptor table refactor is likely gonna block other work, so the earlier it is done the better. |
I think it's probably for the best if I pick something simpler and isolated to start with. |
@rustbot claim |
This hackmd contains the details for |
eventfd
is documented reasonably well in its man page. The current implementation in Miri is incomplete, doesn't have tests (it is only indirect exercised via the tokio MVP test but that's not a good way to test a specific low-level API), and is partially wrong.It is incomplete in that
read
is not implemented, which means they can't actually be used to do anything.That's also where EFD_NONBLOCK would come in.
It is partially wrong in that
write
panics in all sorts of situations that should be handled gracefully(this got fixed in the mean time)dup
creates a new independent event object, rather than a second FD that refers to the same event objectWork on this should IMO follow the proposed "project" process.
The text was updated successfully, but these errors were encountered: