Maybe the reason is that the output of ./PlayerMain
is being buffered. ./PlayerMain
writes something that doesn't get flushed right away, and then hangs because it keeps expecting more input.
That would explain why you do get the message when the program terminates.
So maybe it will work if you modify ./PlayerMain
and set its stdout
to NoBuffering
.