-
Notifications
You must be signed in to change notification settings - Fork 482
Complete and fix our eventfd implementation #3445
Copy link
Copy link
Closed
Labels
A-filesArea: related to files, paths, sockets, file descriptors, or handlesArea: related to files, paths, sockets, file descriptors, or handlesA-shimsArea: This affects the external function shimsArea: This affects the external function shimsC-projectCategory: a larger project is being tracked here, usually with checkmarks for individual stepsCategory: a larger project is being tracked here, usually with checkmarks for individual stepsE-good-second-issueA good issue to pick up if you've already seen some parts of Miri, mentoring is availableA good issue to pick up if you've already seen some parts of Miri, mentoring is available
Metadata
Metadata
Assignees
Labels
A-filesArea: related to files, paths, sockets, file descriptors, or handlesArea: related to files, paths, sockets, file descriptors, or handlesA-shimsArea: This affects the external function shimsArea: This affects the external function shimsC-projectCategory: a larger project is being tracked here, usually with checkmarks for individual stepsCategory: a larger project is being tracked here, usually with checkmarks for individual stepsE-good-second-issueA good issue to pick up if you've already seen some parts of Miri, mentoring is availableA good issue to pick up if you've already seen some parts of Miri, mentoring is available
Type
Fields
Give feedbackNo fields configured for issues without a type.
eventfdis 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
readis 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
writepanics in all sorts of situations that should be handled gracefully(this got fixed in the mean time)dupcreates 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.