How do you handle real-time thread priorities and CPU affinity? I work in soft real-time software as well (feedback control for humanoid robots) and I've been wanting to play around with Rust for real-time programming for a while. Given that your workload is parallel I would imagine CPU pinning is pretty important for making your deadlines. Since my current job involves maintaining a bunch of natively bridged code to add real-time scheduling to a non-realtime environment (Java) I don't wanna muck around with it until the language itself adds the stuff needed to the native API.<p>I've been watching this RFC[1] for years waiting for some notion of progress of support for this in the language itself. Doesn't seem to be a lot of focus on it right now.<p>[1]: <a href="https://github.com/rust-lang/rfcs/issues/819" rel="nofollow">https://github.com/rust-lang/rfcs/issues/819</a>
Strange that you dismiss Java due to its JVM dependency, yet pause at C# disregarding its CLR dependency. C# does not strictly require you to write your code with OOP principles in mind. Yes there are classes, properties, inheritance, etc. but you can treat those as purely organizational and write in a more functional style.<p>Regardless, Rust seems like a solid choice here, but I wouldn't discount Go (golang). It's incredibly simple to write and read code in and its runtime is incredibly rock solid. I have web services written in Go that have literally never crashed of their own accord.