Hi Joshua, For a temporary workaround, replace tb.lock() with:
tb.stop() tb.wait() ...and replace tb.unlock() with: tb.start() This works for me: pydev debugger: starting my_sink: init 48050448 Running until enter is pressed: my_sink: work: 32768 my_sink: work: 32767 my_sink: work: 32768 my_sink: work: 32767 my_sink: work: 32768 Setting new sink. my_sink: init 48051728 Unlocking... Unlocked Hit Enter to quit: my_sink: work: 32768 my_sink: work: 32767 my_sink: work: 32768 my_sink: work: 32767 Finished. See attached for working version. Regards, Mike -- Mike Jameson M0MIK BSc MIET Ettus Research Technical Support Email: [email protected] Web: http://www.ettus.com <http://www.ettus.com> On Tue, Sep 17, 2013 at 11:24 AM, Mike Jameson <[email protected]>wrote: > Hi again, > > I forgot to press enter so the issue does happen on my end too: > > m@mi7:~/Downloads$ time ./unconnect_test.py -f > my_sink: init 36995152 > > Running until enter is pressed: my_sink: work: 32768 > my_sink: work: 32767 > my_sink: work: 32768 > my_sink: work: 32767 > my_sink: work: 32768 > my_sink: work: 32767 > > Setting new sink. > my_sink: init 36995472 > Unlocking... > ^C^Z > > [1]+ Stopped ./unconnect_test.py -f > > real 2m45.886s > user 0m0.000s > sys 0m0.000s > > I'll have a look into it. > > Regards, > > Mike > > -- > Mike Jameson M0MIK BSc MIET > Ettus Research Technical Support > Email: [email protected] > Web: http://www.ettus.com <http://www.ettus.com> > > > On Tue, Sep 17, 2013 at 11:17 AM, Mike Jameson <[email protected]>wrote: > >> Hi Joshua, >> >> You will be pleased to know that it still works even after leaving it for >> 5 minutes: >> >> m@mi7:~/Downloads$ ./unconnect_test.py -h >> >> Usage: unconnect_test.py: [options] >> >> Options: >> -h, --help show this help message and exit >> -f Run failing test (with python sync_block) or passing test >> (without python sync_block) >> m@mi7:~/Downloads$ ./unconnect_test.py >> >> Running until enter is pressed: >> Setting new sink. >> Unlocking... >> Using Volk machine: avx_64_mmx_orc >> Unlocked >> Hit Enter to quit: >> Finished. >> m@mi7:~/Downloads$ ./unconnect_test.py -f >> my_sink: init 60067920 >> >> Running until enter is pressed: my_sink: work: 32768 >> my_sink: work: 32767 >> my_sink: work: 32768 >> my_sink: work: 32767 >> my_sink: work: 32768 >> my_sink: work: 32767 >> my_sink: work: 32768 >> my_sink: work: 32767 >> my_sink: work: 32768 >> my_sink: work: 32767 >> my_sink: work: 32768 >> my_sink: work: 32767 >> my_sink: work: 32768 >> <----snip----> >> >> I've just looked at the git log and I am also using the same version as >> you: >> >> commit be73b3035c184cf09e1051deaba20eca88de8c9d >> >> I am using Ubuntu 12.04 LTS x64 with a Quad Core i7/8GB Ram and GNU >> Radio/UHD was built with pybombs. >> >> Regards, >> >> Mike >> >> -- >> Mike Jameson M0MIK BSc MIET >> Ettus Research Technical Support >> Email: [email protected] >> Web: http://www.ettus.com <http://www.ettus.com> >> >> >> On Mon, Sep 16, 2013 at 11:16 PM, Joshua Lackey <[email protected]> wrote: >> >>> I can't get dynamic reconfiguration to work when my flow graph has a >>> sync_block implemented in Python. If I lock() and then disconnect() and >>> connect() other blocks, my program always hangs on the unlock(). It won't >>> even stop when I hit ctrl-c. Superficial debugging shows that a thread is >>> stuck on a sem_wait() somewhere. Figuring out exactly where it is would >>> take me quite some time as I'm not familiar with that section of the GNU >>> Radio code. (Considering I wrote the sync_block in Python to save some >>> time, re-implementing it in C++ would be quicker for me than tracking down >>> this potential bug.) >>> >>> I did search the mailing list, but I couldn't find anyone discussing >>> this issue. At least not with the search terms I used. >>> >>> I realize that it is entirely possible I'm simply doing it wrong so I >>> wrote a (minimal) example that demonstrates my problem. (Attached.) >>> >>> I should include information about my GNU Radio install, but I'm not >>> sure what would be useful. I use Arch Linux and can't run the >>> build-gnuradio script directly, but I followed it as an example. I wanted >>> to get 3.7 so I installed from the git master branch. The last commit in >>> my repo is be73b3035c184cf09e1051deaba20eca88de8c9d . If any other >>> information about my system would be useful in tracking this down, please >>> tell me. >>> >>> Here is an example run of the attached program. Note how the first test >>> using all GNU Radio C++ primitives works as expected. The example only >>> hangs when I try and lock()/unlock() the flow graph that contains my simple >>> Python sync_block. >>> >>> Any ideas? >>> >>> >>> $ ./unconnect_test.py -h >>>> >>>> Usage: unconnect_test.py: [options] >>>> >>>> >>>>> Options: >>>> >>>> -h, --help show this help message and exit >>>> >>>> -f Run failing test (with python sync_block) or passing test >>>> >>>> (without python sync_block) >>>> >>>> $ ./unconnect_test.py >>>> >>>> Running until enter is pressed: >>>> >>>> Setting new sink. >>>> >>>> Unlocking... >>>> >>>> Using Volk machine: avx_64_mmx_orc >>>> >>>> Unlocked >>>> >>>> Hit Enter to quit: >>>> >>>> Finished. >>>> >>>> $ ./unconnect_test.py -f >>>> >>>> my_sink: init 45187536 >>>> >>>> Running until enter is pressed: my_sink: work: 32768 >>>> >>>> my_sink: work: 32767 >>>> >>>> my_sink: work: 32768 >>>> >>>> my_sink: work: 32767 >>>> >>>> >>>> >>>> Setting new sink. >>>> >>>> my_sink: init 45187856 >>>> >>>> Unlocking... >>>> >>>> ^Z >>>> >>>> [1]+ Stopped ./unconnect_test.py -f >>>> >>>> $ kill %1 >>>> >>>> >>>>> [1]+ Stopped ./unconnect_test.py -f >>>> >>>> $ fg >>>> >>>> bash: fg: job has terminated >>>> >>>> [1]+ Terminated ./unconnect_test.py -f >>>> >>>> $ >>>> >>>> >>>>> >>>> >>> _______________________________________________ >>> Discuss-gnuradio mailing list >>> [email protected] >>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio >>> >>> >> >
start_stop_hang.py
Description: Binary data
_______________________________________________ Discuss-gnuradio mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
