summaryrefslogtreecommitdiff
path: root/gnuradio-runtime/lib/top_block_impl.cc
Commit message (Collapse)AuthorAgeFilesLines
* runtime: Add terminate handlingPaul Wicks2020-12-191-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | This consists of the following changes: 1. Add a top_block parameter to control exception handling This restores past behavior where the scheduler catches exceptions raised in block threads, allowing flowgraphs to continue running after the failure of an individual block. It also adds optional new behavior, selected by setting catch_exceptions=False to the top block, which causes exceptions to not be caught. In this mode of operation, a std::terminate handler can be installed to print a stack trace before the flowgraph exits. 2. Add terminate_handler to top_block_impl This adds a terminate_handler function that prints information about any uncaught exceptions and also attempts to print a backtrace for said exception after which it calls std::abort. The backtrace is printed via libunwind, which is a new optional dependency. If libunwind is not found/installed, then the terminate handler will still print information about the exception and then exit. Co-Authored-By: Scott Torborg <storborg@gmail.com>
* runtime: replace stderr logging by calls to GR's logging faciltiesMarcus Müller2020-04-131-3/+11
|
* runtime: release the flattened flowgraph after stoppingClayton Smith2020-02-081-0/+2
|
* Update license header to SPDX formatdevnulling2020-01-271-13/+1
|
* Add a top_block parameter to control exception handlingScott Torborg2020-01-051-7/+15
| | | | | | | | | This restores past behavior where the scheduler catches exceptions raised in block threads, allowing flowgraphs to continue running after the failure of an individual block. It also adds optional new behavior, selected by setting catch_exceptions=False to the top block, which causes exceptions to not be caught. In this mode of operation, a std::terminate handler can be installed to print a stack trace before the flowgraph exits.
* clang-format: Ordering all the includesMarcus Müller2019-08-091-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | clang-format: ordering includes in gnuradio-runtime clang-format: ordering includes in gr-filter clang-format: ordering includes in gr-fft clang-format: ordering includes in gr-audio clang-format: ordering includes in gr-analog clang-format: ordering includes in gr-fec clang-format: ordering includes in gr-wavelet clang-format: ordering includes in gr-zeromq clang-format: ordering includes in gr-vocoder clang-format: ordering includes in gr-video-sdl clang-format: ordering includes in gr-trellis clang-format: ordering includes in gr-blocks clang-format: ordering includes in gr-digital clang-format: ordering includes in gr-uhd clang-format: ordering includes in gr-dtv clang-format: ordering includes in gr-channels clang-format: ordering includes in gr-qtgui clang_format.py: re-enable include reordering
* Tree: clang-format without the include sortingMarcus Müller2019-08-091-139/+121
|
* runtime: remove single-threaded schedulerJohnathan Corgan2016-09-031-3/+1
|
* runtime: fix state handling in top_blockJiří Pinkava2016-06-251-6/+14
| | | | | | | | | | d_state is intended to track running state of top block. * initial state is IDLE * set state to RUNNING when start() is called * set state to IDLE when stop() is called * set state to IDLE when all work is done (reqires call of wait()) * unlock() resume/start execution only if state is RUNNING
* runtime: fix wait() race conditionJiří Pinkava2015-04-011-2/+21
| | | | | | | | | | | | | | Func. wait() should wait until all work is completed, but should not exit when block is locked()/unlocked() for flow-graph reconfiguration. It is unprobable, but during unlock() thread context might be switched after stop() is called but before new thread are executed by scheduller. This can cause exit from wait() when it is called (eg. from Python wrapper). Call of stop() is moved into lock(), no new work should be started on locked block and this gives threads some time to finish before join() is called from unlock().
* runtime: export list of msg connections when performance counters are enabledTim O'Shea2013-06-071-0/+9
|
* runtime: converting runtime core to gr namespace, gnuradio include dir.Tom Rondeau2013-04-291-0/+212