Commit Graph

39 Commits

Author SHA1 Message Date
dforsi f461fcb94c
Fix typing errors (#935)
Found with:
codespell --skip=external --ignore-words-list=axix,bord,parm,soley,ue --write-changes --interactive 2

Co-authored-by: Daniele Forsi <iu5hkx@gmail.com>
2021-12-29 19:54:03 +01:00
Charles J. Cliffe e9a6fc089c Cleanup: data, visual processor threads 2021-04-04 22:18:19 -04:00
vsonnier 8dbd5de53d No Spin-lock for xxxProcessor, unclear what the gain was 2019-03-04 18:44:48 +01:00
vsonnier 6afa3a6d6a Reduced SpinMutex scope in VisualProcessor::distribute() 2019-03-03 11:42:34 +01:00
vsonnier 5ab44e3104 Use spin-locks for short-lived, non-recursive locking sequences 2019-03-03 10:36:10 +01:00
vsonnier 3cc49bdb15 Fixes #581 ?: Do not set std::shared_ptr to nullptr in constructors (useless anyway) since they could be wrongly interpreted 2017-10-16 18:50:55 +02:00
vsonnier 6019207bd4 VisualProcessor : protect against null input queue 2017-10-15 08:51:01 +02:00
vsonnier f4107c1541 Optimized VisualProcessor by using a non-recursive mutex and making some ops non-blocking, small AudioThread opt as well 2017-10-14 11:34:25 +02:00
vsonnier 927d727a16 Try not to use atomics in performance code 2017-09-22 22:53:59 +02:00
vsonnier 3842cf087f More terminate()-and-flush calls missed before 2017-08-29 18:48: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 3de3d3eee8 Tentative fix #549 prt 3 2017-05-27 12:36:47 +02:00
vsonnier b3dd0b0d6e Tentative fix #548 part 2 2017-05-27 09:49:19 +02:00
vsonnier d170f731c5 Fix #549, plus more usual syntax for #548 2017-05-27 07:46:28 +02:00
vsonnier fcf9f0bb82 Potential fix for #548, to be tested in Nix-like environnements 2017-05-26 23:22:43 +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 77a82e1617 Another fix for the neverending hung application bugs:
- Clear up DemodulatorInstance garbage collection, only do it in a single thread (AppFrame::OnIdle)
- Add a specific mutex lock for the list of deleted demodulators,
- Add a specific lock to control DemodulatorInstance thread lifetimes, protecting IsTerminated() of concurrent join and delete
2017-05-25 08:03:08 +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 9e32141a5f MISC4: Fix ref count of VisualDataDistributor (harmless, currently unused) 2017-02-15 20:45:46 +01:00
vsonnier 65c1722bca FIX: VisualProcessor compilation on Linux targets (#514), ThreadBlockingQueue version... 2017-02-14 18:42:12 +01:00
vsonnier c7467a88bc BLOCKING_QUEUE: prepare by raising up max queue lenghts
BLOCKING_QUEUE: Replaced ThreadQueue usage by ThreadBlockingQueue usage
BLOCKING_QUEUE: instrument all push() with timeouts, showed some call have to be non-blocking...
BLOCKING_QUEUE: tuned push()/try_push()
2017-02-14 18:42:05 +01:00
vsonnier c0dafb3197 FIX: VisualProcessor compilation on Linux targets (#514), suggested by @abousselmi, also works on MSVC 2017-02-14 18:34:25 +01:00
vsonnier d3db510643 pre-BLOCKING_QUEUE: Simplified, fixed ThreadQueue, VisualProcessor (use std:deque, cleaner templates, max_size fixes) 2017-02-12 12:53:50 +01:00
vsonnier 4609386648 COMMENTS,POLISHING: comments fenzy around VisualProcessor machinery,
make process() a true interface as strong hint for derived classes,
plus misc define added for understanding.

BUGFIX: FFTDataDistributor loses incoming samples when compacting internal buffers.

BUGFIX2: FFTDistributor: Frozen Waterfall if internal buffer is no bigger than fftSize
2017-02-05 12:41:43 +01:00
vsonnier 115b0ffa58 CLEANUP: some compiler and static analysis warnings 2017-01-28 14:57:27 +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 21c8a81c32 TH_CLEAN_3.5: push() cleanup side of things, assure SDRThread::readStream() to actually check for full + make ThreadQueue notify even in case on not-successfull push(), make it spam notify_all() everytime 2016-07-08 23:30:15 +02:00
vsonnier 5bb43f5aaa Replace mutex lock/unlock pairs with guards, cleanups 2016-06-03 18:45:03 +02:00
Charles J. Cliffe 0a6d409065 tex update lock, VisualData"Re"Distributor 2015-09-10 21:48:18 -04:00
Charles J. Cliffe 0802f7b756 Experimenting with max speed waterfall (no dropped FFTs :)
- FFT Detail from zoomed-in views is greatly improved with the
additional data
2015-08-11 00:50:43 -04:00
Charles J. Cliffe 2cff389d6b SpectrumVisualProcessor now working, cleanup, refactoring 2015-08-03 01:38:38 -04:00
Charles J. Cliffe 560eec1336 ScopeVisualProcessor now working 2015-08-01 11:03:00 -04:00
Charles J. Cliffe 6f3d9a6c82 visual process template tweaks, full() logic error fix 2015-07-31 21:28:14 -04:00
Charles J. Cliffe 61add8ae09 VisualProcessor now a template base, more tweaking needed 2015-07-31 21:03:17 -04:00
Charles J. Cliffe 3fbb1def49 MSVC and TDMGCC fixes 2015-07-31 18:21:30 -04:00
Charles J. Cliffe 3ab8669d06 Initial IOThread prototype 2015-07-29 18:34:58 -04:00
Charles J. Cliffe 0198f2410f basic visual data pass-thru distributor 2015-07-27 22:05:35 -04:00
Charles J. Cliffe 090062191c Visual processor basic framework 2015-07-27 21:45:24 -04:00
Charles J. Cliffe a8e24d5537 Visual Processor prototype
link data -> visuals with common processing pipeline, chainable
2015-07-27 21:20:44 -04:00