Just one extra note here since I didn't mention it, this is the output from
the script on my machine:

sd...@sdrts:~/test$ sudo python usrp2_rx.py
0 Lock
0 Unlock
usrp2: channel 0 already streaming
1 Lock
1 Unlock

Sorry I didn't mention this before.
Kieran

On Wed, Feb 25, 2009 at 1:08 PM, Johnathan Corgan <
jcor...@corganenterprises.com> wrote:

> On Wed, 2009-02-25 at 12:27 +1300, Kieran Brownlees wrote:
>
> > There are 3 threads running, I posted thread 1 before,
> >
> > Here is thread 2:
>
> When unlock() is called, it stops the flowgraph, waits for it to finish,
> then restarts it in its (possibly) new configuration.
>
> Thread 1 is your main thread waiting for the flowgraph to stop so it can
> calculate the new flowgraph and restart it.
>
> Thread 2 is the usrp2 source block work function, blocked waiting for
> packets to show up in its ring buffer.
>
> Thread 3 is the one reading packets from the kernel and putting them in
> thread 2's ring buffer.  It is blocked waiting for packets to come in
> over the GbE.
>
> When the call to unlock() results in the flowgraph being stopped,
> threads 2 and 3 should be gracefully exiting, but they are not.  It's
> also suspicious that it works the first time but not the second time.
>
> This is clearly a USRP2 host driver bug, but not clear where.  I don't
> have a workaround for you in the meantime other than to not use
> lock()/unlock() on flowgraphs that have USRP2 sources.  (It does work
> fine with USRP2 sinks.)
>
> Thanks again for the minimal test case and gdb stack dumps--it makes it
> much simpler to track down the problem.
>
> Johnathan
>
>
>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to