Commit Graph

57 Commits

Author SHA1 Message Date
Thomas Harte a3d37640aa Switch include guards to `#pragma once`. 2024-01-16 23:34:46 -05:00
Thomas Harte 62410a04ef Remove pointless — and damaging — `std::move`. 2023-12-23 21:44:10 -05:00
Thomas Harte 5845ce0a39 Ameliorate for race condition. 2023-12-04 09:56:06 -05:00
Thomas Harte 1b197d0bb2 Resolve crash of machines that require the ROM requester. 2022-08-22 17:02:09 -04:00
Thomas Harte 8f2e94a1d8 Switch name back to emphasise _async_. 2022-07-16 14:41:04 -04:00
Thomas Harte 637161157c Switch to slightly more sensical 'none' type. 2022-07-15 16:29:29 -04:00
Thomas Harte 41af76bed8 Fix variable name. 2022-07-15 15:13:03 -04:00
Thomas Harte bf03bda314 Generalise AsyncTaskQueue, DeferringAsyncTaskQueue and AsyncUpdater into a single template. 2022-07-14 16:39:26 -04:00
Thomas Harte 126838e7c7 Thanks to `std::swap` and move semantics, there's no need for indirection here. 2022-07-14 15:52:31 -04:00
Thomas Harte 18f01bcd48 Switch back to std::list as a kneejerk fix for `AsyncTaskQueue`. 2022-07-13 22:26:59 -04:00
Thomas Harte 79f8cab5e2 Attempt to reduce memory allocations. 2022-07-13 21:41:04 -04:00
Thomas Harte 92efad4970 Switch to std::vector. 2022-07-13 21:36:01 -04:00
Thomas Harte 5c3084c37c Fix construction order. 2022-07-07 20:09:37 -04:00
Thomas Harte 07ce0f0133 Attempt safe shutdown. 2022-07-07 16:56:10 -04:00
Thomas Harte 3e2a6ef3f4 Hacks up an [unsafe] return to something best-effort-updater-esque.
For profiling, mainly.
2022-07-07 16:35:45 -04:00
Thomas Harte 01a309909b Elide actions when running behind. 2022-07-07 11:10:54 -04:00
Thomas Harte 7886c2df7a Start experimenting with a more event-based approach to timing. 2022-07-07 10:48:42 -04:00
Thomas Harte 7f33a5ca0c Simplify: (i) repetitive type for `TaskList`; (ii) unnecessary `unique_ptr`. 2022-06-02 17:02:36 -04:00
Thomas Harte e389dcb912 Further simplify syntax. 2022-06-02 16:52:03 -04:00
Thomas Harte 9d278d80f1 Remove redundant `reset`. 2022-06-02 16:50:59 -04:00
Thomas Harte e994910ff6 Switch to `unique_ptr`. 2022-06-02 16:46:41 -04:00
Thomas Harte 93679f8d48 Reduce potential surprise in DeferringAsyncTaskQueue::flush. 2022-06-02 12:50:45 -04:00
Thomas Harte d18a537509 Fiddles with the preprocessor to make kiosk mode match other OSes even on macOS. 2021-06-13 19:28:05 -04:00
Thomas Harte 495024d6fe Cleans up all redundant lock/unique_guard declarations. 2020-06-15 00:24:10 -04:00
Thomas Harte 3729bddb2a Farewell, BestEffortUpdater. 2020-05-09 21:48:04 -04:00
Thomas Harte 5caf74b930 Corrects typo. 2020-02-04 22:24:37 -05:00
Thomas Harte 3aa2c297a2 Adds feedback to the best-effort updater; enables the Cocoa port for audio event requests. 2020-01-20 17:38:25 -05:00
Thomas Harte 290db67f09 Adds a forward route for event flags. Doesn't yet account for extra time expended. 2020-01-20 17:09:01 -05:00
Thomas Harte 4de121142b Adds a flags parameter to the BestEffortUpdater delegate.
On the Cocoa side, cuts Swift out of the update loop, as that seems merely to add code.
2020-01-20 16:21:53 -05:00
Thomas Harte 8adb2283b5 Rewrites the best-effort updater to try to get better thread affinity. 2020-01-20 13:38:46 -05:00
Thomas Harte 0dae608da5 Embraces std::make_[unique/shared] in place of .reset(new . 2019-12-23 21:31:46 -05:00
Thomas Harte 05d77d3297 Also deploys make_unique/shared to avoid type repetition. 2019-12-21 23:52:04 -05:00
Thomas Harte 821d40fe74 Reinstitutes the cap on maximum updating time. 2018-05-16 21:42:05 -04:00
Thomas Harte 5d6b5d9f10 Eliminates all emdashes in cross-platform code. 2018-05-13 15:34:31 -04:00
Thomas Harte 0b771ce61a Removes all instances of the copyright symbol. 2018-05-13 15:19:52 -04:00
Thomas Harte f4097290c2 Made various corrections following a quick for-loop constness audit. 2018-04-30 22:23:57 -04:00
Thomas Harte 6656a08c60 Introduces missing #includes. 2018-03-23 18:05:51 -04:00
Thomas Harte a301964bd0 Ensures all audio queues are fully merged before machine destruction.
Thereby avoids a race condition.
2018-03-22 21:59:19 -04:00
Thomas Harte da3d65c18f Devolves time to cycle conversion to machines.
Thereby avoids a whole bunch of complicated machinations that would otherwise have been required of the multimachine.
2018-03-21 22:18:13 -04:00
Thomas Harte 83f73c3f02 Installs additional safeguards against unsafe deconstruction. 2018-02-28 22:15:22 -05:00
Thomas Harte ac80d10cd8 Separates the component parts of running an audio stream: task deferral, filtering and generation.
Walking towards improving opportunities for composition.
2017-12-17 21:26:06 -05:00
Thomas Harte eb6b612052 Adds `DeferringAsyncTaskQueue` as a base concurrency primitive. 2017-12-15 22:14:09 -05:00
Thomas Harte adb3811847 Ensures deterministic initial state for the atomic flag. 2017-11-13 22:51:42 -05:00
Thomas Harte c45d4831ec Introduces an SConstruct file and corrects those errors and warnings that arise in Ubuntu. 2017-11-08 22:36:41 -05:00
Thomas Harte d37ec9e5b0 Attempts to ensure good behaviour if dealt an adjustable clock, and `const`s where possible. 2017-10-05 18:23:56 -04:00
Thomas Harte ec202ed8be Merge branch 'master' into C++BestEffortUpdater 2017-10-05 18:17:35 -04:00
Thomas Harte f40e1fd840 Commutes the best-effort updater into C++11. 2017-10-05 18:09:58 -04:00
Thomas Harte ea64125124 Added an explicit nilling, to help with debugging. 2017-08-13 22:15:25 -04:00
Thomas Harte 825b38850e Removes non-idiomatic line break. 2017-07-22 17:30:58 -04:00
Thomas Harte eb8a2de5d6 Settled definitively on `flush` as more communicative than `synchronise` (and slightly more locale neutral); culled some more duplication from the Z80. 2017-05-15 07:38:59 -04:00