4 ms·
You basically need to wrap your program's `tick()` function. Otherwise you might be in the middle of malloc, hot-patch, and your struct's layout and alignment c
by jkelleyrtp 1y ago
You basically need to wrap your program's `tick()` function. Otherwise you might be in the middle of malloc, hot-patch, and your struct's layout and alignment changes, and your program crashes due to undefined behavior.
The goal is that frameworks just bake `subsecond::current` into their `tick()` function and end-users get hot-patching for free.
- deleted 1y ago[deleted]
- jesse__ 1y agoHow would you preempt the running program during malloc? Isn't there a well-defined reload point? Major red flags going up if your program can just change at any random point.. Also, didn't the article say explicitly that struct layout changes aren't supported??
- anderskaseorg 1y agoThere is a well-defined reload point—it’s the `subsecond::call` wrapper around `tick()`. But the hypothetical design that you seem to have in mind where this doesn’t exist would not have a well-defined reload point, so it would need to be able to preempt your program anywhere. Layout changes are supported for structs that don’t persist across the well-defined reload point.