Straight Key CW transmitters used to be very simple - - close some contacts and out comes a carrier.? With SDRs, the variable timing of Straight Key CW seems to have become the most complex thing to accommodate.??
?
What you are suggesting sounds like very good design.? But I'm out of my comfort zone with multicore processors, threaded applications, blocking, and memory management.? So, I may just be rambling.? I don't have the motivation to attempt a total restructuring (although that sure would be educational).??
?
As I understand it, zBITX/sbitx uses two threads : Sound and All-Else.? With a signal messaging system for thread coordination.? I do not see any evidence of blocking being used anywhere.? It is the All-Else thread that I want to interrupt with the key-down input. I'm not really a real time embedded system software designer.? I'm more of a try it guy, rather than a get bogged down in thinking about it guy. ?It may turn out to be a disaster - the multicore RasPi OS may not handle it well.??
?
The less desirable alternate is for me to fall back to my idea of just using a longer Semi-QSK dropout delay to keep the device in Transmit Mode longer.? I already do that with some of my other radios that have T-R relays - just to go easy on the relays.