| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
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 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
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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().
|
| |
|
|
|