4b27b51d59
The recent CORE-C12 worker-pool work landed in commits that no longer
compile against current Rust 2024 edition and the relibc fork's
exposed-libc surface. This commit fixes the four blockers that
prevent base from linking at all:
1. netcfg/mod.rs:195 — 'eth0' undefined. The DEFAULT_IFACE
centralization commit (9d8ad861) replaced all literal 'eth0'
paths except this one in the 'summary' ro handler. Replace with
so the route now uses the canonical
constant.
2. scheme_pool.rs:125 — E0507 .
JoinHandle::join takes self by value, but Drop impl was calling
&self.handle.join(). Wrap handle in Option<JoinHandle<()>> and
use Option::take() in Drop so we get an owned handle to join.
3. scheme_pool.rs:185 — E0521 . SchemeWork::new required &'static str but submit
takes &str. Change scheme_name field to Cow<'static, str> and
accept impl Into<Cow<'static, str>> for the constructor so both
static and borrowed strings work.
4. scheme_pool_init.rs — DELETE. The 'register_all' helper was
dead code (never called from production). Its closures captured
Arc<Mutex<Smolnetd>> but Smolnetd contains Rc<RefCell<...>>,
raw pointers (*const [TimeSpec]), and dyn NodeWriter — none of
which are Send. The Smolnetd struct is intentionally
single-threaded; the worker-pool code that would justify
moving it across threads was never completed (CORE-C12 fix
remains half-done). Remove the file and the mod declaration
in main.rs to drop all 17 Send-violation errors that originated
from this single file.
5. scheme/tcp.rs:66 — libc::MSG_NOSIGNAL is not exposed by
relibc on Redox. Define a local MSG_NOSIGNAL: u16 = 0x4000
(POSIX value) with a docstring explaining the rationale.
Remaining errors after this commit:
- E0425: cannot find type CallerCtx (scheme/tcp.rs:52) — needs
- E0425: cannot find type SocketCall — needs an import
- E0599/E0369: Result<usize, SendError> not handled correctly in
send path
- E0308: a few mismatched-type sites
These will be addressed in a follow-up commit.