So: I’ve found found a fantastic use case for the New Signal command.
Then a (seemingly) major gotcha.
I’m hoping someone can tell me otherwise:
It seems to me that using New Signal to call a worker process from an on resize form event is a killer.
I have a method to return to me the “OBJECT GET BEST SIZE” for a specified text/font/size/style: that does NOT need to tamper with forms in the current process: and that can potentially run in preemptive-safe.
I accomplish this by calling a worker process to do the actual OBJECT GET BEST SIZE call, using the New Signal command to return my results.
My particular use case would include being called from a on-screen form, that the user may re-size, and should see fonts re-flow on the screen.
However, when I actually run the code: it seems that my worker process runs and completes correctly: issuing a $MySignal.trigger() at the end: but my calling process (often in an “on resize” form event) often gets totally stuck waiting for the signal: like a temporary database freeze.
Ive tried it (the calling process) by either using $Signal_ob.wait(1), and by doing repeat, IDLE, Until ($Signal_ob.signaled).
Here is my tiny sample database.