aboutsummaryrefslogtreecommitdiffstats
path: root/src/odr-padenc.cpp
diff options
context:
space:
mode:
authorStefan Pöschel <github@basicmaster.de>2017-04-07 23:43:23 +0200
committerStefan Pöschel <github@basicmaster.de>2017-04-07 23:43:23 +0200
commit78ca13d1a7d837008ef5339746773b2abbf3ca2f (patch)
tree49e9024536af1f5bd19a8e2f29b7775fb8655c23 /src/odr-padenc.cpp
parentb2253d99cba9dabf8afaec030a2c9f7c1fe623d5 (diff)
downloadODR-PadEnc-78ca13d1a7d837008ef5339746773b2abbf3ca2f.tar.gz
ODR-PadEnc-78ca13d1a7d837008ef5339746773b2abbf3ca2f.tar.bz2
ODR-PadEnc-78ca13d1a7d837008ef5339746773b2abbf3ca2f.zip
Add recovery on broken pipe
When the opposite side of the PAD FIFO disconnects (e.g. due to crash of the audio encoder), ODR-PadEnc crashed as well due to SIGPIPE. This commit changes the behaviour. From now on instead error messages are displayed and it is possible for a new instance of the audio encoder to reconnect to the still running ODR-PadEnc instance.
Diffstat (limited to 'src/odr-padenc.cpp')
-rw-r--r--src/odr-padenc.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/odr-padenc.cpp b/src/odr-padenc.cpp
index c42ddf0..2fd3a47 100644
--- a/src/odr-padenc.cpp
+++ b/src/odr-padenc.cpp
@@ -168,6 +168,10 @@ int main(int argc, char *argv[]) {
perror("ODR-PadEnc Error: could not set SIGTERM handler");
return 1;
}
+ if(signal(SIGPIPE, SIG_IGN) == SIG_ERR) {
+ perror("ODR-PadEnc Error: could not set SIGPIPE to be ignored");
+ return 1;
+ }
size_t padlen = 58;
bool erase_after_tx = false;