Limits; for e.g. [hard] real-time (and for stacks)

A.
I just learned of RLIMIT_RTTIME and SIGXCPU (and another intriguing RLIMIT_STACK):
https://man7.org/linux/man-pages/man2/getrlimit.2.html

and while I’m sure Julia doesn’t support it, I’m thinking could it and how? I suppose in your app, you could catch SIGXCPU RLIMIT_STACK somehow, but I’m thinking most GC languages aren’t used for real-time, and in Julia you do it by avoiding the GC.

Could and should Julia respond to that signal by running GC, or would it only make the problem worse? Do any GC languages do hard-real time GC in that way?

B.
Julia like all languages can blow the stack, why I found RLIMIT_STACK intriguing. The answer is not doing that, and maybe increasing the stack size so that it’s less likely to happen. But I didn’t know you could do anything if that actually happens. I think it’s rare that languages or programs support that.

I do see Python supports setting (and getting) all kinds of limits, though I think just for the next process, and very much doubt it’s for Python itself, i.e. that Python tries to respect it for itself (or the next Python process it spawns).

C.
Yet another limit, what got me interested looking into and finding the others:

Java has options, though apparently even in realtime applications there are several options before you’d resort to handling a realtime GC.

Not what we have now.

1 Like