[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r8689 - in gnuradio/trunk: gnuradio-core/src/lib/runti
From: |
eb |
Subject: |
[Commit-gnuradio] r8689 - in gnuradio/trunk: gnuradio-core/src/lib/runtime gr-gpio/src/python gr-utils/src/python |
Date: |
Tue, 24 Jun 2008 14:48:40 -0600 (MDT) |
Author: eb
Date: 2008-06-24 14:48:39 -0600 (Tue, 24 Jun 2008)
New Revision: 8689
Modified:
gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block.cc
gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block.h
gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block.i
gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block_impl.cc
gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block_impl.h
gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block_impl_sts.cc
gnuradio/trunk/gr-gpio/src/python/gpio_usrp_siggen.py
gnuradio/trunk/gr-utils/src/python/usrp_siggen.py
Log:
removed is_running method from gr_top_block
Modified: gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block.cc
===================================================================
--- gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block.cc
2008-06-24 19:41:34 UTC (rev 8688)
+++ gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block.cc
2008-06-24 20:48:39 UTC (rev 8689)
@@ -96,9 +96,3 @@
{
d_impl->dump();
}
-
-bool
-gr_top_block::is_running()
-{
- return d_impl->is_running();
-}
Modified: gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block.h
===================================================================
--- gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block.h 2008-06-24
19:41:34 UTC (rev 8688)
+++ gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block.h 2008-06-24
20:48:39 UTC (rev 8689)
@@ -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/trunk/gnuradio-core/src/lib/runtime/gr_top_block.i
===================================================================
--- gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block.i 2008-06-24
19:41:34 UTC (rev 8688)
+++ gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block.i 2008-06-24
20:48:39 UTC (rev 8689)
@@ -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/trunk/gnuradio-core/src/lib/runtime/gr_top_block_impl.cc
===================================================================
--- gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block_impl.cc
2008-06-24 19:41:34 UTC (rev 8688)
+++ gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block_impl.cc
2008-06-24 20:48:39 UTC (rev 8689)
@@ -57,8 +57,11 @@
std::cout << "start: entered " << this << 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();
@@ -68,6 +71,7 @@
// Execute scheduler threads
start_threads();
+ d_running = true;
}
@@ -86,8 +90,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)
@@ -107,7 +113,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();
@@ -133,6 +139,7 @@
d_ffg = new_ffg;
start_threads();
+ d_running = true;
}
void
Modified: gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block_impl.h
===================================================================
--- gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block_impl.h
2008-06-24 19:41:34 UTC (rev 8688)
+++ gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block_impl.h
2008-06-24 20:48:39 UTC (rev 8689)
@@ -49,16 +49,13 @@
virtual void wait() = 0;
// Lock the top block to allow reconfiguration
- virtual void lock();
+ void lock();
// Unlock the top block at end of reconfiguration
- virtual void unlock();
+ void unlock();
// Dump the flowgraph to stdout
void dump();
-
- // Return true if flowgraph is running
- bool is_running() const { return d_running; }
protected:
@@ -70,7 +67,6 @@
int d_lock_count;
virtual void start_threads() = 0;
- virtual void restart();
/*!
* Make a vector of gr_block from a vector of gr_basic_block
@@ -79,6 +75,8 @@
*/
static gr_block_vector_t make_gr_block_vector(gr_basic_block_vector_t
blocks);
+private:
+ void restart();
};
#endif /* INCLUDED_GR_TOP_BLOCK_IMPL_H */
Modified: gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block_impl_sts.cc
===================================================================
--- gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block_impl_sts.cc
2008-06-24 19:41:34 UTC (rev 8688)
+++ gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_top_block_impl_sts.cc
2008-06-24 20:48:39 UTC (rev 8689)
@@ -85,8 +85,6 @@
std::cout << "start_threads: starting " << thread << std::endl;
thread->start();
}
-
- d_running = true;
}
/*
Modified: gnuradio/trunk/gr-gpio/src/python/gpio_usrp_siggen.py
===================================================================
--- gnuradio/trunk/gr-gpio/src/python/gpio_usrp_siggen.py 2008-06-24
19:41:34 UTC (rev 8688)
+++ gnuradio/trunk/gr-gpio/src/python/gpio_usrp_siggen.py 2008-06-24
20:48:39 UTC (rev 8689)
@@ -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/trunk/gr-utils/src/python/usrp_siggen.py
===================================================================
--- gnuradio/trunk/gr-utils/src/python/usrp_siggen.py 2008-06-24 19:41:34 UTC
(rev 8688)
+++ gnuradio/trunk/gr-utils/src/python/usrp_siggen.py 2008-06-24 20:48:39 UTC
(rev 8689)
@@ -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):
"""
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r8689 - in gnuradio/trunk: gnuradio-core/src/lib/runtime gr-gpio/src/python gr-utils/src/python,
eb <=