Commit Graph

31 Commits

Author SHA1 Message Date
Charles J. Cliffe f97f368a6a Cleanup: appframe, bookmarks, sessions, core app 2021-04-04 22:22:16 -04:00
vsonnier 9bf25b8feb Fix #739: removed usage of std::binary_function deprecated after C++11 2019-06-02 18:56:00 +02:00
vsonnier 5ab44e3104 Use spin-locks for short-lived, non-recursive locking sequences 2019-03-03 10:36:10 +01:00
vsonnier 00c0693574 Fix #675 cut-n-paste giving wrong demod data queue (thanks @GkvJeep) plus boost of AudioThread queue size to prevent stuttering at very high CPU loads 2018-08-31 20:21:45 +02:00
vsonnier 927d727a16 Try not to use atomics in performance code 2017-09-22 22:53:59 +02:00
vsonnier c64baab99d Threads vs. Queues lifetimes, cleanups.
- Ideally Queues must outlive the threads using them, but wasn't done so. Yes, std::shared_ptr them!
- Now queues are always valid in the context of the threads using them.
- No longer need tedious queues deallocation by the original owner.
- Misc cleanups.
2017-08-13 19:19:25 +02:00
vsonnier a0526f757e ReBuffer somewhat cleaner, safer code 2017-05-26 10:29:47 +02:00
vsonnier 44cdfa8521 Make ReBuffer also GC its own memory + cleanups:
- Use deque in ReBuffer instead of vector (as before) because it allows freeing its memory
- Random cleanup: remove mutable when not needed.
2017-05-25 16:39:01 +02:00
vsonnier 9b0ce69e8f Use the nuclear option to solve the hung problem:
Besides deadlocks, a thread can in theory get stuck in a blocking pop(),
not seeing the stopping flag in particular. So assure liveness by making all
pop() timed pop.
2017-05-25 09:32:27 +02:00
vsonnier 4b323e9863 Make ReBuffer refcount management automatic, using std::shared_ptr:
- No longer need to call setRefCount() / decRefCount()
- Restore old ThreadBlockingQueue using std::deque, for std::shared_ptr correct behaviour.
2017-05-24 12:28:37 +02:00
vsonnier 25f7ba386d BLOCKING_QUEUE: remove ThreadBlockingQueue dependency to ThreadQueue, remove ThreadQueue.h from CMakeLists 2017-02-14 18:42:11 +01:00
vsonnier 1a53e454ab FIX: missing demod displays due to wrong input/queue setups order 2017-01-08 12:46:31 +01:00
Charles J. Cliffe 3ec14fbe38 Licence fix, add SPDX-License-Identifier, remove unused code files 2017-01-02 21:07:43 -05:00
vsonnier 52de909cfb THREAD_CLEAN: Clearly distinguish between a request to stop by terminate() from the actual termination isTerminated() 2016-06-28 22:16:34 +02:00
vsonnier 4ec08b8b68 MISC 1 : Create ReBuffer by default with refcount 1, so remove redundant refCount(1) evertwhere 2016-06-09 19:38:20 +02:00
Charles J. Cliffe 9c10e2baaf comment index debugging 2016-06-08 22:08:14 -04:00
Charles J. Cliffe 1dba16b15f comment some debug logging 2016-06-08 21:54:02 -04:00
Charles J. Cliffe 0067e309d1 more debugging; fix some potential refcount leaks... 2016-06-08 21:31:52 -04:00
Charles J. Cliffe b54ab38a47 More minor tweaks; getBuffer refcount 1 init suggestion from @vsonnier 2016-06-08 19:48:46 -04:00
Charles J. Cliffe 037be13fac Rebuffer Garbage collector; mostly to pinpoint/gracefully handle ReBuffer failures 2016-06-07 19:54:36 -04:00
vsonnier 5bb43f5aaa Replace mutex lock/unlock pairs with guards, cleanups 2016-06-03 18:45:03 +02:00
vsonnier c3d949ddba MISC 3: Make the whole BufferType life-cycle and recycling properly guarded against concurrent access 2016-06-01 19:51:01 +02:00
vsonnier fc4fa3e74f MISC 2: Make ReferenceCounter refcount itself protected by the same mutex of the whole class, for state consistency 2016-06-01 19:46:45 +02:00
vsonnier 357dcc967b MISC 1: make IOThread input and output queues returned as ThreadQueueBase*, not void*, cleaner.
then use static_cast for downcasts, because we know what we are doing
2016-06-01 19:42:11 +02:00
Charles J. Cliffe cdc80b890b Add ReBuffer buffer count warning, fix SDRPostThread off-by-one channel reset 2015-12-04 22:10:51 -05:00
Charles J. Cliffe a1bf5b839e Prototype waterfall rate smoothing / fps matching 2015-09-09 23:29:38 -04:00
Charles J. Cliffe 1d5a2f1ac7 Fix for an initial priming overload and visuals memory leak 2015-08-12 21:45:02 -04:00
Charles J. Cliffe 847f7a7569 Automatic ReBuffer<> garbage collection of unused buffers 2015-08-11 21:19:55 -04:00
Charles J. Cliffe d53aabf73a DemodulatorPreThread convert to IOThread named queues 2015-07-29 22:52:54 -04:00
Charles J. Cliffe 05cd99bbf1 IOThread all the things! 2015-07-29 20:57:02 -04:00
Charles J. Cliffe 3ab8669d06 Initial IOThread prototype 2015-07-29 18:34:58 -04:00