40da3f8df7
singleton: add trivial implementation
2018-03-22 15:06:48 +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
3689b08535
parallel/queue: add nodiscard to push/pop
...
Users _must_ check the return value otherwise they've no indication
whether anything happened... This is a pretty common mistake because it
looks a lot like a typical push/pop operation.
2018-03-22 14:57:34 +11:00
4f4b812356
parallel/queue: add capacity query
2018-03-22 14:57:24 +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
804b2263b8
parallel/queue: rename the queue type
2018-03-22 13:22:27 +11:00
d47f9e0cce
debug: write threadid to trace output
2018-03-22 13:20:23 +11:00
370488c498
coord: test coords are trivial types
2018-03-22 13:20:00 +11:00
88d514aa9c
pool: launder the allocated pointers
2018-03-22 13:10:18 +11:00
7fc51aa151
parallel/queue: use representative name for class
2018-03-22 13:05:51 +11:00
fc148fa7a4
parallel/queue: comments and type checks
2018-03-22 13:02:51 +11:00
4773e4be21
parallel: initial single-producer/multiple-consumer queue
2018-03-21 18:53:24 +11:00
82d63f68b1
job/flag: improved parallelism test
2018-03-20 18:02:20 +11:00
e120540bb9
job: add forward declarations
2018-03-20 15:01:23 +11:00
2508c5cc71
test: read TAP status before exit
2018-03-20 14:50:46 +11:00
197160daba
tap: check the status variable is read
2018-03-20 14:50:32 +11:00
0cf530c2de
debug: use macros for DEBUG_ONLY macro
2018-03-20 14:49:46 +11:00
8212048750
maths: add fast approximations WIP
2018-03-20 13:35:10 +11:00
5d02171a6f
maths: add relatively_equal comparator
2018-03-20 13:35:10 +11:00
84f8600f85
view: add const array ref template deduction
2018-03-20 13:35:10 +11:00
341907ac79
coord/simd: add more sse operations
2018-03-20 13:35:10 +11:00
7708b12c37
bitwise: add 'from_bits' integer extraction
...
constructs an integer from range of indices over a bitfield
2018-03-20 13:35:10 +11:00
68faa8838e
cpuid: add initial trivial CPUID queries
2018-03-18 17:29:44 +11:00
b307ab935d
coord/simd: add initial simd tests
2018-03-16 11:10:44 +11:00
af5da5b846
maths: use double negation for equality bool conversion
2018-03-16 11:10:08 +11:00
5dda5d130a
spinlock: reduce iterations for testing
...
4096 iterations should be enough to demonstrate any issues, but still
execute quickly enough for everyday testing
2018-03-15 23:49:12 +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
5228cecbfb
traits: add is_same_template_template trait
2018-03-15 15:25:18 +11:00
cbe439b8e9
tuple: add index parameter helper for parameter packs
2018-03-15 15:25:18 +11:00
7ce2f5454d
pool: correctly forward constructor parameters
2018-03-15 15:25:18 +11:00
bafe71b3ab
coord/ops: add `all' overload for scalar bool
2018-03-15 15:25:18 +11:00
deb787847c
maths: allow mix's t to lie outside [0,1] a little
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
5fc6cd46a7
bezier: comment out unused variable in test
2018-03-15 15:23:42 +11:00
0646b1c13b
geom: move distance/intersection tests outside classes
2018-03-13 23:27:37 +11:00
b1276519ef
geom: add simple frustum class
2018-03-13 22:37:40 +11:00
47efd293c9
geom/plane: use a vector for coefficients
...
this simplifies usage of the coefficients in other routines
2018-03-13 22:37:09 +11:00
563ffaf894
matrix: assert that index values are valid
2018-03-13 22:35:05 +11:00
44f8496256
matrix: use a more descriptive template param name
2018-03-13 22:34:48 +11:00
f09babd507
matrix: add simple header comment
2018-03-13 22:33:54 +11:00
95d13b9fe4
geom/aabb: rename p0,p1 to lo,hi
...
this makes their meaning more explicit
2018-03-13 15:42:29 +11:00
583e4aa26d
coord/ops: fix incorrect invoke function name
2018-03-13 15:41:48 +11:00