51 Commits
Author SHA1 Message Date
Thomas Harte 6b160810b1 Use more rational std::memory_order::. 2026-10-06 22:59:25 -04:00
Thomas Harte a45d38a9cc Fix notify semantics. 2026-10-06 22:56:53 -04:00
Thomas Harte bf66e82eb6 Merge branch 'master' into NoMoreConditionVariable 2026-10-06 22:43:54 -04:00
Thomas Harte 77165ae552 Use std::atomic_flag::wait. 2026-09-16 13:56:03 -04:00
Thomas Harte 4683194996 Add requires clause. 2026-07-28 12:00:45 -04:00
Thomas Harte 1efbaace39 notify_all is unnecessary (and possibly costs more). 2026-07-27 15:15:39 -04:00
Thomas Harte fb716450d6 Reinline maybe_perform. 2026-07-27 15:13:03 -04:00
Thomas Harte 1c86668b1a Make std::function choice a mere implementation decision. 2026-07-27 15:12:01 -04:00
Thomas Harte 4ef56aa537 Add const. 2026-07-25 08:05:25 -04:00
Thomas Harte 70500a512d Support move-based enquing; fix typos. 2026-07-25 08:01:02 -04:00
Thomas Harte 54c806c0df Guarantee has_run is initialised to false. 2026-07-25 07:58:16 -04:00
Thomas Harte d2eb788a68 Make should_quit_ memory barrier overt. 2026-07-25 07:58:01 -04:00
Thomas Harte 51d917c4c2 Reduce indentation. 2026-07-16 13:38:50 -04:00
Thomas Harte c9edb93bdd Eliminate ATOMIC_FLAG_INITs; unnecessary since C++20. 2026-04-22 21:20:38 -04:00
Thomas Harte 9e5c2c20e3 Switch to std::atomic_flag. 2026-04-15 10:23:04 -04:00
Thomas Harte 289aff4931 Tweak queue semantics. 2026-04-14 10:01:58 -04:00
Thomas Harte 92b49afada Ensure atomic access to actions_. 2026-02-18 12:53:31 -05:00
Thomas Harte 5b4f303e35 Mention memory barrier. 2025-11-13 18:02:41 -05:00
Thomas Harte c9c1bde6e2 Switch to spinning on SID thread synchronisation. 2025-11-13 17:59:24 -05:00
Thomas Harte 4e86184955 Add local hack to ensure good flushing. 2025-11-11 14:40:13 -05:00
Thomas Harte a81309433c Switch to lambda form. 2025-11-09 21:09:57 -05:00
Thomas Harte 902f388cb1 Enforce perform_automatically, start_immediately; relax Boolean access order. 2025-11-09 00:17:39 -05:00
Thomas Harte 1a1e3281e4 Avoid overlong line; add consts. 2025-10-10 22:27:29 -04:00
Thomas Harte 2c2216afae Further eliminate file-relative includes. 2025-02-28 13:18:48 -05:00
Thomas Harte d3ed485e7a Take another big swing at indentation, some consts. 2024-12-01 21:44:14 -05:00
Thomas Harte 7248470950 Roll formatting and const tweaks into Inputs. 2024-11-30 18:57:56 -05:00
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 18f01bcd48 Switch back to std::list as a kneejerk fix for AsyncTaskQueue. 2022-07-13 22:26:59 -04:00
Thomas Harte 92efad4970 Switch to std::vector. 2022-07-13 21:36:01 -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 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 0b771ce61a Removes all instances of the copyright symbol. 2018-05-13 15:19:52 -04:00
Thomas Harte 83f73c3f02 Installs additional safeguards against unsafe deconstruction. 2018-02-28 22:15:22 -05:00
Thomas Harte eb6b612052 Adds DeferringAsyncTaskQueue as a base concurrency primitive. 2017-12-15 22:14:09 -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 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
Thomas Harte 583db88299 Added a dispatch queue-powered Apple implementation of the async task queue, removed any mention of skip_samples in the AY since it isn't implemented. 2016-10-22 21:58:45 -04:00
Thomas Harte 4258401384 Implemented flush, added a call to it from the filter speaker's destructor, to ensure no race conditions on accessing the various bits of instance state there and below. 2016-10-19 21:15:04 -04:00
Thomas Harte 4829b896f7 Documented the async task queue. 2016-10-07 17:18:46 -04:00
Thomas Harte 002e923cf1 Added shutdown logic. 2016-10-07 17:08:29 -04:00