Hi list,
I have been writing a patch to send messages to/from a subprocess in batch mode. First, I wrote the patch with mrpeach's udpsend/udpreceive and got it working. It's just a simple handshake:
the toplevel process starts listening on port 16000 for a message [1 1(. When it receives that message, it sends back a message [1 subprocess#( to localhost port 15999.
The subprocess starts up, listens on port 15999 and sends a message [1 1( to localhost port 16000. When it gets a message [1 n( on port 15999, it outputs n as the subprocess #, and opens a new port 16000+n (and closes 15999).
This was fine, except udpsend/receive pairs exchange binary numbers (0-255). It will work, but it doesn't make the patches as easily readable. It will still be possible to pass integers larger than 255 with a little patching, but some flexibility would be nice.
I thought "netsend -u"/"netreceive -u" would make a good replacement with text instead.
It runs fine during the first part of testing with the GUI. I test "-nogui". Also fine. Then, "-batch" added. Here the cpu load goes to 100% (which didn't happen with mrpeach udpsend/receive). I'm able to strace and see the first message [1 1( sent. Then, the process keeps on going but doesn't receive any further UDP messages.
I'm able to find a sourceforge ticket from 2012: https://sourceforge.net/p/pure-data/bugs/943/ and basically, I'm looking for the same usage case which is batch mode processing under supervision from another Pd process.
I'm guessing that mrpeach/udpreceive and netreceive have different polling behavior that can explain this, but I don't see it yet. Is there anyone reading, who's dealt with this issue before?
Chuck