From a0ffbc6d5c39bf605cf6e9f3c09de9f95ee6c6e6 Mon Sep 17 00:00:00 2001
From: Josh Blum <josh@joshknows.com>
Date: Thu, 29 Oct 2009 14:28:56 -0700
Subject: fixed issue where usrp siggen continued to transmit after program
 exit

---
 gr-utils/src/python/usrp_siggen_gui.py | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

(limited to 'gr-utils/src/python/usrp_siggen_gui.py')

diff --git a/gr-utils/src/python/usrp_siggen_gui.py b/gr-utils/src/python/usrp_siggen_gui.py
index 40848fbeee..47d47bdb3d 100755
--- a/gr-utils/src/python/usrp_siggen_gui.py
+++ b/gr-utils/src/python/usrp_siggen_gui.py
@@ -284,7 +284,7 @@ class app_gui(pubsub):
         self.vbox.AddSpacer(5)
         self.vbox.AddStretchSpacer()
 
-if __name__ == "__main__":
+def main():
     try:
         # Get command line parameters
         (options, args) = usrp_siggen.get_options()
@@ -308,3 +308,10 @@ if __name__ == "__main__":
     except RuntimeError, e:
         print e
         sys.exit(1)
+
+# Make sure to create the top block (tb) within a function:
+# That code in main will allow tb to go out of scope on return,
+# which will call the decontructor on usrp and stop transmit.
+# Whats odd is that grc works fine with tb in the __main__,
+# perhaps its because the try/except clauses around tb.
+if __name__ == "__main__": main()
-- 
cgit v1.2.3