The File class provided by Rust is blocking by default. In order to get non-blocking IO, we need to either (a) move to Tokio or (b) do some unsafe libc calls. Tokio would take us farther away from the normal design patterns on embedded, so this PR embeds just enough libc to do the nonblocking / select stuff we need. This should be sufficient to get us started writing real apps.
The File class provided by Rust is blocking by default. In order to get non-blocking IO, we need to either (a) move to Tokio or (b) do some
unsafe
libc calls. Tokio would take us farther away from the normal design patterns on embedded, so this PR embeds just enough libc to do the nonblocking / select stuff we need. This should be sufficient to get us started writing real apps.