commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r9125 - in gnuradio/branches/releases/3.1: gnuradio-co


From: jcorgan
Subject: [Commit-gnuradio] r9125 - in gnuradio/branches/releases/3.1: gnuradio-core/src/lib/runtime gr-gpio/src/python gr-utils/src/python
Date: Fri, 1 Aug 2008 11:32:14 -0600 (MDT)

Author: jcorgan
Date: 2008-08-01 11:32:14 -0600 (Fri, 01 Aug 2008)
New Revision: 9125

Modified:
   gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.cc
   gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.h
   gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.i
   
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block_impl.cc
   
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block_impl.h
   gnuradio/branches/releases/3.1/gr-gpio/src/python/gpio_usrp_siggen.py
   gnuradio/branches/releases/3.1/gr-utils/src/python/usrp_siggen.py
Log:
Applied changeset r8689 on trunk to release branch.

Modified: 
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.cc
===================================================================
--- 
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.cc    
    2008-08-01 17:13:39 UTC (rev 9124)
+++ 
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.cc    
    2008-08-01 17:32:14 UTC (rev 9125)
@@ -95,9 +95,3 @@
 {
   d_impl->dump();
 }
-
-bool
-gr_top_block::is_running()
-{
-  return d_impl->is_running();
-}

Modified: 
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.h
===================================================================
--- gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.h 
2008-08-01 17:13:39 UTC (rev 9124)
+++ gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.h 
2008-08-01 17:32:14 UTC (rev 9125)
@@ -1,6 +1,6 @@
 /* -*- c++ -*- */
 /*
- * Copyright 2007 Free Software Foundation, Inc.
+ * Copyright 2007,2008 Free Software Foundation, Inc.
  * 
  * This file is part of GNU Radio
  * 
@@ -103,11 +103,6 @@
    * Displays flattened flowgraph edges and block connectivity
    */
   void dump();
-
-  /*!
-   * Returns true if flowgraph is running
-   */
-  bool is_running();
 };
 
 #endif /* INCLUDED_GR_TOP_BLOCK_H */

Modified: 
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.i
===================================================================
--- gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.i 
2008-08-01 17:13:39 UTC (rev 9124)
+++ gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block.i 
2008-08-01 17:32:14 UTC (rev 9125)
@@ -1,6 +1,6 @@
 /* -*- c++ -*- */
 /*
- * Copyright 2007 Free Software Foundation, Inc.
+ * Copyright 2007,2008 Free Software Foundation, Inc.
  * 
  * This file is part of GNU Radio
  * 
@@ -46,7 +46,6 @@
   void run();
   void lock();
   void unlock() throw (std::runtime_error);
-  bool is_running();
   void dump();
 };
 

Modified: 
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block_impl.cc
===================================================================
--- 
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block_impl.cc
   2008-08-01 17:13:39 UTC (rev 9124)
+++ 
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block_impl.cc
   2008-08-01 17:32:14 UTC (rev 9125)
@@ -96,8 +96,11 @@
     std::cout << "start: entered" << std::endl;
 
   if (d_running)
-    throw std::runtime_error("top block already running or wait() not called 
after previous stop()");
+    throw std::runtime_error("top_block::start: top block already running or 
wait() not called after previous stop()");
 
+  if (d_lock_count > 0)
+    throw std::runtime_error("top_block::start: can't call start with flow 
graph locked");
+
   // Create new flat flow graph by flattening hierarchy
   d_ffg = d_owner->flatten();
 
@@ -107,6 +110,7 @@
 
   // Execute scheduler threads
   start_threads();
+  d_running = true;
 }
 
 void
@@ -183,8 +187,10 @@
 gr_top_block_impl::unlock()
 {
   omni_mutex_lock lock(d_reconf);
-  if (d_lock_count <= 0)
+  if (d_lock_count <= 0){
+    d_lock_count = 0;          // fix it, then complain
     throw std::runtime_error("unpaired unlock() call");
+  }
 
   d_lock_count--;
   if (GR_TOP_BLOCK_IMPL_DEBUG)
@@ -204,7 +210,7 @@
     std::cout << "restart: entered" << std::endl;
 
   if (!d_running)
-    throw std::runtime_error("top block is not running");
+    return;            // nothing to do
 
   // Stop scheduler threads and wait for completion
   stop();
@@ -230,6 +236,7 @@
   d_ffg = new_ffg;
 
   start_threads();
+  d_running = true;
 }
 
 void

Modified: 
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block_impl.h
===================================================================
--- 
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block_impl.h
    2008-08-01 17:13:39 UTC (rev 9124)
+++ 
gnuradio/branches/releases/3.1/gnuradio-core/src/lib/runtime/gr_top_block_impl.h
    2008-08-01 17:32:14 UTC (rev 9125)
@@ -56,9 +56,6 @@
 
   // Dump the flowgraph to stdout
   void dump();
-
-  // Return true if flowgraph is running
-  bool is_running() const { return d_running; }
   
 private:
     
@@ -72,6 +69,8 @@
   std::vector<gr_basic_block_vector_t> d_graphs;
 
   void start_threads();
+
+private:
   void restart();
 };
 

Modified: gnuradio/branches/releases/3.1/gr-gpio/src/python/gpio_usrp_siggen.py
===================================================================
--- gnuradio/branches/releases/3.1/gr-gpio/src/python/gpio_usrp_siggen.py       
2008-08-01 17:13:39 UTC (rev 9124)
+++ gnuradio/branches/releases/3.1/gr-gpio/src/python/gpio_usrp_siggen.py       
2008-08-01 17:32:14 UTC (rev 9125)
@@ -90,26 +90,25 @@
         # self.file_sink = gr.file_sink (gr.sizeof_gr_complex, "siggen.dat")
 
     def _configure_graph (self, type):
-        was_running = self.is_running ()
-        if was_running:
-            self.stop ()
-        self.disconnect_all ()
-        if type == gr.GR_SIN_WAVE:
-            self.connect (self.siggen, self.u)
-            # self.connect (self.siggen, self.file_sink)
-            self.siggen.set_waveform (type)
-            self.src = self.siggen
-        elif type == gr.GR_UNIFORM or type == gr.GR_GAUSSIAN:
-            self.connect (self.noisegen, self.u)
-            self.noisegen.set_type (type)
-            self.src = self.noisegen
-        elif type == gr.GR_CONST_WAVE:
-            self.connect (self.vecgen, self.u)
-            self.src = self.vecgen
-        else:
-            raise ValueError, type
-        if was_running:
-            self.start ()
+        try:
+            self.lock()
+            self.disconnect_all ()
+            if type == gr.GR_SIN_WAVE:
+                self.connect (self.siggen, self.u)
+                # self.connect (self.siggen, self.file_sink)
+                self.siggen.set_waveform (type)
+                self.src = self.siggen
+            elif type == gr.GR_UNIFORM or type == gr.GR_GAUSSIAN:
+                self.connect (self.noisegen, self.u)
+                self.noisegen.set_type (type)
+                self.src = self.noisegen
+            elif type == gr.GR_CONST_WAVE:
+                self.connect (self.vecgen, self.u)
+                self.src = self.vecgen
+            else:
+                raise ValueError, type
+        finally:
+            self.unlock()
 
     def set_freq(self, target_freq):
         """

Modified: gnuradio/branches/releases/3.1/gr-utils/src/python/usrp_siggen.py
===================================================================
--- gnuradio/branches/releases/3.1/gr-utils/src/python/usrp_siggen.py   
2008-08-01 17:13:39 UTC (rev 9124)
+++ gnuradio/branches/releases/3.1/gr-utils/src/python/usrp_siggen.py   
2008-08-01 17:32:14 UTC (rev 9125)
@@ -69,23 +69,22 @@
         # self.file_sink = gr.file_sink (gr.sizeof_gr_complex, "siggen.dat")
 
     def _configure_graph (self, type):
-        was_running = self.is_running ()
-        if was_running:
-            self.stop ()
-        self.disconnect_all ()
-        if type == gr.GR_SIN_WAVE or type == gr.GR_CONST_WAVE:
-            self.connect (self.siggen, self.u)
-            # self.connect (self.siggen, self.file_sink)
-            self.siggen.set_waveform (type)
-            self.src = self.siggen
-        elif type == gr.GR_UNIFORM or type == gr.GR_GAUSSIAN:
-            self.connect (self.noisegen, self.u)
-            self.noisegen.set_type (type)
-            self.src = self.noisegen
-        else:
-            raise ValueError, type
-        if was_running:
-            self.start ()
+        try:
+            self.lock()
+            self.disconnect_all ()
+            if type == gr.GR_SIN_WAVE or type == gr.GR_CONST_WAVE:
+                self.connect (self.siggen, self.u)
+                # self.connect (self.siggen, self.file_sink)
+                self.siggen.set_waveform (type)
+                self.src = self.siggen
+            elif type == gr.GR_UNIFORM or type == gr.GR_GAUSSIAN:
+                self.connect (self.noisegen, self.u)
+                self.noisegen.set_type (type)
+                self.src = self.noisegen
+            else:
+                raise ValueError, type
+        finally:
+            self.unlock()
 
     def set_freq(self, target_freq):
         """





reply via email to

[Prev in Thread] Current Thread [Next in Thread]