Commit Graph

1501 Commits

Author SHA1 Message Date
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 98c7c30aee Yet another Thread termination problem found, and try killing the app if the closing turns bad 2017-08-13 12:11:14 +02:00
vsonnier 33107bfa9e Fix #565, Solo mode is now saved into session files 2017-08-12 18:09:36 +02:00
vsonnier ae74023864 Updated Windows liquid-dsp v1.30 binaries, compiled with latest MSYS2 GCC 7.1.0
- Apparently the 32bit build no longer need any dependency, so remove libgcc_s_dw2-1.dll
- Updated libwinpthread-1.dll from MSYS2 too.
2017-08-12 14:29:49 +02:00
vsonnier e67a29f5b6 Don't get stuck when closing application just because some Demodulators refuse to die 2017-08-12 11:30:32 +02:00
vsonnier 33aa0cade6 Fix bad re-loading, setting and UI glitches for Device Runtime settings, and misc.
- Quite obvious on the SDRPlay RSP2 for ex.
- Random cleanups by using the for-each construct at some places for clarity.
2017-08-12 08:17:40 +02:00
Vincent Sonnier 695d00d966 Merge pull request #555 from lospheris/master
Change boolean to bool
2017-06-02 06:21:15 +02:00
Dell-Ray Sackett ab6cb059b9 boolean not a valid keyword
changed boolean to bool in garbageCollect
2017-06-01 21:12:06 -07:00
Dell-Ray Sackett b315bac97f Change boolean to bool
void DemodulatorMgr::garbageCollect(boolean forcedGC)
should be 
void DemodulatorMgr::garbageCollect(bool forcedGC)
2017-06-01 21:05:49 -07:00
vsonnier 3604b7f1ff Even better thread and application termination:
- Now that timed-pop()/try_pop() prevent indefinite blocking it is best to flush() on thread stopping to unblock push()
- Reworked a bit the CubicSDR::OnExit() sequence, see comments.
2017-06-01 19:57:58 +02:00
vsonnier 8f608bbf5c Cleanup: remove some unused params and variables, conversion warnings seen with #550. 2017-05-29 20:22:10 +02:00
vsonnier be3c0c9778 Pedantic change for mat4::to_ptr() 2017-05-28 17:33:44 +02:00
Vincent Sonnier 83b3bb1cb2 Merge pull request #551 from cjcliffe/vso_CubicVR2_cleaner_array_access
CubicVR2  removal of convert to pointer operators (fixes #550)
2017-05-28 17:15:38 +02:00
vsonnier dd2fa12d57 There is no need for operator bool conversion:
- it was there for != NULL checks when convert-to-pointer existed, which is no longer the case.
2017-05-28 15:20:43 +02:00
vsonnier 3095f8205a CubicVR2: more restricted operators on structures by removing convert-to-pointer. (Fix #550 ?) 2017-05-28 12:59:08 +02:00
vsonnier 56b56685e0 Yet Another Semicolon After Endif left... (#549) 2017-05-27 15:28:42 +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 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
Vincent Sonnier 3192ee0e71 Merge pull request #547 from cjcliffe/vso_ReBuffer_with_shared_ptr
Rebuffer automatic refcount management
2017-05-25 12:32:11 +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 8776908340 Fixes #546, when MTU > nb samples per-frame, overflow management was wrong. 2017-05-23 11:09:29 +02:00
vsonnier 5797548739 SoapySDRThread tweak: directly resize to the final size when building SDRThreadIQData 2017-05-23 11:09:28 +02:00
vsonnier af20f680a4 Clearer ThreadBlockingQueue impl by using a field to hold size... 2017-05-21 21:04:12 +02:00
Vincent Sonnier 313d66e1d6 Merge pull request #545 from cjcliffe/vso_circular_buffer_for_queue
TheadBlockingQueue implemented with circular buffer (zero runtime mem allocs)
==> Well, looks like it works.
2017-05-21 10:31:22 +02:00
vsonnier 41c7dd231b Fix tabs introduced in latest commits... 2017-05-21 10:03:21 +02:00
vsonnier e0af609224 Use a circular buffer for ThreadBlockingQueue (allocation-free) 2017-05-21 09:39:29 +02:00
vsonnier fc2716518d SoapySDRThread: more comments about the relation between MTU and sample rate 2017-05-21 09:20:41 +02:00
vsonnier c1fef72103 Use more a reliable time source in Windows for the Timer class 2017-05-20 13:31:55 +02:00
vsonnier a541e55ff6 SaopySDRThread simplified, (small) perf improvement: No longer use inpBuffer,
write to SDRThreadIQData->data directly.
2017-05-20 13:31:46 +02:00
Charles J. Cliffe 21a6d2b5f6 Module bundling fix for OSX BUNDLE_APP 2017-05-12 22:19:19 -04:00
Charles J. Cliffe 1bf7c22f00 Donation list update 2017-05-11 22:51:39 -04:00
Charles J. Cliffe 994c67dd93 version bump 2017-05-11 21:43:50 -04:00
Charles J. Cliffe 15d8715234 Merge pull request #542 from Dantali0n/master
Fix portselectordialog being added to sources and headers while USE_HAMLIB disabled
2017-04-22 14:35:38 -04:00
Dantali0n 0e838327fe Fix portselectordialog sources only in win32 2017-04-22 20:25:35 +02:00
Dantali0n 0cf09d1f5d Fix portselectordialog added with USE_HAMLIB disabled 2017-04-22 14:24:07 +02:00
Charles J. Cliffe 91fd255c86 Remove temporary windows SSB filtering solution 2017-04-20 21:19:55 -04:00
Charles J. Cliffe 43ed37b23c Merge pull request #541 from cjcliffe/serial_detect
Fix rig control menu, add serial port detection and selection dialog
2017-04-20 20:52:44 -04:00
Charles J. Cliffe 21b2b3d191 MSVC serial fix-up 2017-04-20 20:41:03 -04:00
Charles J. Cliffe f9dc1aeb32 Use the right function.. 2017-04-20 19:53:08 -04:00
Charles J. Cliffe 43a9150107 Fix rig control menu, add serial port detection and selection dialog 2017-04-20 19:40:09 -04:00
vsonnier 0a19686b51 Remove 'threadlocal' pedantic and very limited usage that is not supported on all platforms 2017-04-05 19:28:18 +02:00
vsonnier c8cca67fc7 Bookmarks: fix for #525 item 2, other cleanups. 2017-04-01 19:38:08 +02:00
Charles J. Cliffe 53c7daa521 Merge pull request #533 from cjcliffe/bookmark_issues
Tweaks for bookmark selection, activation and group renaming
2017-03-30 22:45:38 -04:00
Charles J. Cliffe f4d090e65b Tweaks for bookmark selection, activation and group renaming 2017-03-30 22:26:11 -04:00