Unnamed repository; edit this file 'description' to name the repository.
Rollup merge of #158326 - valentynkit:io-error-too-many-open-files, r=jhpratt
Add `io::ErrorKind::TooManyOpenFiles`
Adds an unstable `io::ErrorKind::TooManyOpenFiles` for the open-file-limit condition.
`EMFILE` and `ENFILE` currently decode to `ErrorKind::Uncategorized`, so stable code cannot tell that an operation failed because the process or the system ran out of file descriptors without inspecting `raw_os_error()` and a platform-specific `libc`/`windows-sys` constant.
Implements the accepted ACP rust-lang/libs-team#818, including its decision to collapse `EMFILE` and `ENFILE` into a single variant. Finer-grained handling stays available through `raw_os_error()`.
The variant maps:
- `EMFILE` / `ENFILE` on Unix and WASI
- `ERROR_TOO_MANY_OPEN_FILES` / `WSAEMFILE` on Windows
- `FR_TOO_MANY_OPEN_FILES` on VEXos
Tracking issue: rust-lang/rust#158319
r? libs