RD1 generates power 99% of the year and collects solar radiation by autonomously redirecting its reflectors toward a concentrator to focus sunlight throughout each day. RD2 uses flat panels, with solar cells facing away from Earth and microwave emitters facing toward the Earth. RD2 generates power 60% of the year due to its limited capability to reposition itself or redirect solar radiation toward its solar cells.
https://ntrs.nasa.gov/api/citations/20230017756/downloads/ASCEND%20SBSP%20Final%2005162024.pdf
I’m going to whoosh the joke for a moment.
Avoid allocating memory in sig segv handlers. I worked at a company once that had written their own handlers that tried to print a stack trace. I was fortunate enough to find a machine in a test environment that segfaulted while allocating memory. The handler then caused a deadlock in a call to malloc (through new). I ended up rewriting the handler to fix two sources of memory allocation. First I preallocate enough space to do string manipulations in the handler. Second I made eager calls to a few libc functions used in the handler to avoid memory allocation from lazy binding from ld.so.