Commit Graph

41 Commits

Author SHA1 Message Date
537e5d40a8 job/queue: remove use of deprecated aligned_storage_t 2023-05-15 10:31:17 +10:00
4747b649fd build: address clang-tidy errors 2021-04-20 12:10:53 +10:00
0977fb89b3 debug/assert: don't use iostream 2021-04-12 16:56:06 +10:00
e8f23a349e thread: remove thread, mutex, and condition_variable wrappers
These are no longer needed as we required MinGW with PThreads support.
2020-08-03 11:21:29 +10:00
837b948435 Header cleanup using include-what-you-use 2020-07-01 17:02:44 +10:00
fb13c0fb0f job/dispatch: explicitly specify the dispatchable region 2020-03-12 12:45:45 +11:00
01094611eb thread: add minimal thread primitives for win32
This allows us to get around the lack of these types under MinGW
2019-06-22 15:46:34 +10:00
39107bb62c job/queue: avoid noexcept termination in default_parallelism 2019-04-15 10:35:49 +10:00
e5e47ffb24 parse: move si and value parsing into common namespace 2019-03-19 12:38:22 +11:00
4a73a3cea7 job/dispatch: add index uniqueness test 2019-03-08 09:42:15 +11:00
e0f4fdc308 job/queue: expose default_parallelism query 2019-03-08 09:41:44 +11:00
5fedbdbdfe parse: change parsing functions to modify the data view 2018-12-16 13:26:48 +11:00
b60aaccf6f build; fix compilation errors under win32
win32 builds are still totally unsupported, untested, and functionally
broken.
2018-08-13 14:52:40 +10:00
f6056153e3 rename root namespace from util to cruft
This places, at long last, the core library code into the same namespace
as the extended library code.
2018-08-05 14:42:02 +10:00
803acc9a87 relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
503ed940ac job/queue: add move assignment operator for cookie 2018-07-24 15:48:03 +10:00
ba0eabc848 job/queue: restrict job release lambda's parameters 2018-06-18 14:01:06 +10:00
e9d5909f21 scoped: eliminate the raii header 2018-06-13 15:43:01 +10:00
497d3ca970 build: update for gcc-8.1 warnings 2018-05-03 18:32:08 +10:00
62920f36f4 job/dispatch: retain the supplied function if forwarded to us 2018-03-27 16:20:56 +11:00
45fa54a5ee job/dispatch: don't unconditionally cast parameters 2018-03-27 16:16:35 +11:00
d941188dd5 job/queue: add default constructor 2018-03-27 16:16:13 +11:00
3409d39fc9 job/dispatch: add chunked image job queueing 2018-03-23 16:59:09 +11:00
36f4ba035c thread: rename thread primitives from job namespace 2018-03-23 14:10:20 +11:00
2d7e3e5d7d build: prefer iosfwd over iostream 2018-03-22 16:11:13 +11:00
9bfefb3dab job/queue: use a reaper thread to clear finished tasks
clearing the tasks on the worker threads can cause the queue to stall
while the cookie is notified, released, and deleted. we punt the cleanup
off to a reaper thread so that the workers can continue.
2018-03-22 14:59:03 +11:00
53255ca4a0 job/semaphore: add multi-release 2018-03-22 13:39:16 +11:00
848b9951e8 job/semaphore: add multi-acquire 2018-03-22 13:37:28 +11:00
e120540bb9 job: add forward declarations 2018-03-20 15:01:23 +11:00
e1d87afe37 spinlock: prefer weak xchg when spinning 2018-03-15 23:48:50 +11:00
12d401b98b tuple/variadic: split into type/value/pack operations 2018-03-15 23:48:21 +11:00
f3f3666877 job/queue: rework locking for reliability 2018-03-15 15:25:19 +11:00
0c824919de job/monitor: add simple monitor adapter 2018-03-15 15:25:18 +11:00
c9dea18881 job/semaphore: add a basic semaphore implementation 2018-03-15 15:25:14 +11:00
4154066a0e job/ticketlock: add a trivial ticketlock 2018-03-15 15:23:43 +11:00
f04e6e4de5 job/spinlock: add simple spinlock implementation 2018-03-15 15:23:43 +11:00
3a26a98db7 job/flag: add a one off event object 2018-03-15 15:23:43 +11:00
1fd58c8967 job/event: a simple reusable edge triggered event 2018-03-15 15:23:43 +11:00
8f6af0f837 job/queue: make single argument constructor explicit 2017-08-24 17:53:27 +10:00
21f462d4a0 job/queue: don't use references for parameters
references aren't trivial types. we should support them soon, but this
gets us up and running faster.
2017-07-04 14:18:45 +10:00
320fe6c378 job/queue: add trivial job queuing system 2017-07-03 17:05:01 +10:00