about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rwxr-xr-xbin/dtas-player5
-rw-r--r--lib/dtas/player.rb1
2 files changed, 5 insertions, 1 deletions
diff --git a/bin/dtas-player b/bin/dtas-player
index 640d31c..401a500 100755
--- a/bin/dtas-player
+++ b/bin/dtas-player
@@ -26,7 +26,10 @@ else
   player.socket = sock
 end
 
-at_exit { player.close }
+at_exit do
+  player.close
+  Process.waitall
+end
 player.bind
 trap(:INT) { exit }
 trap(:TERM) { exit }
diff --git a/lib/dtas/player.rb b/lib/dtas/player.rb
index 3571a7f..2bf2716 100644
--- a/lib/dtas/player.rb
+++ b/lib/dtas/player.rb
@@ -419,6 +419,7 @@ class DTAS::Player # :nodoc:
     end while true
   ensure
     __current_requeue
+    stop_sinks
     trap(:CHLD, old_chld)
     sev.close if sev
     # for state file