Commit Graph

3391 Commits

Author SHA1 Message Date
190307acb8 typeidx: use atomic variables for thread safety 2018-04-05 12:14:11 +10:00
cd06fdcd67 debug: add assertions_enabled variable 2018-04-05 12:13:37 +10:00
de247c7e7b cpp: add basic C preprocessor emulator 2018-04-01 14:49:10 +10:00
49ebbec37f string: don't use const members for tokeniser::iterator
this allows us to provide an assignment operator more easily
2018-04-01 14:47:33 +10:00
f404598edc string: add advance operator for tokeniser::iterator 2018-04-01 14:46:32 +10:00
5028de600a string: add indirection operator for tokeniser::iterator 2018-04-01 14:44:43 +10:00
bfa5700df0 view: add string comparison operators 2018-04-01 14:44:15 +10:00
41cf6c3d51 view: slice should be const 2018-04-01 14:44:08 +10:00
5b9eae9b25 posix/except: add templated error_code 2018-04-01 14:43:28 +10:00
cc54d23998 gitignore: add pretty printer python cache 2018-03-29 14:16:55 +11:00
a4634a771b g/frustum: simplify aabb intersection test 2018-03-28 20:42:43 +11:00
48e007c545 debug: add gdb pretty printers for coord types 2018-03-28 14:55:54 +11:00
4f10505d09 build: fix warnings from -Wparentheses 2018-03-27 20:16:32 +11:00
5642ff43b8 README: note all the environment variables we use. 2018-03-27 16:21:38 +11:00
47613c5ec2 string: remove unneeded rval-ref qualifier 2018-03-27 16:21:20 +11: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
429c0151db singleton: add comments 2018-03-27 16:15:54 +11:00
473556f9ed maths/fast: use relatively_equal for tests 2018-03-27 16:15:21 +11:00
046e6182e7 maths: avoid division by zero in relatively_equal 2018-03-27 16:14:41 +11:00
8777d32b94 debug: don't enable float exceptions by default
sometimes we just power through computations with invalid results to
simplify conditionals.
2018-03-27 16:14:01 +11:00
5532f90de7 vector: note what each component in spherical corresponds to 2018-03-27 16:11:49 +11:00
951b160d0d parse: instantiate unsigned in parsing 2018-03-27 16:11:04 +11:00
14e2fc5bd5 geom/ray: use infinity, not nan, to signal no intersection 2018-03-27 16:06:34 +11:00
048cffaee7 extent;string: return references in iterators 2018-03-27 16:05:46 +11:00
67c8c9c69c debug: enable debugging features by default 2018-03-27 15:50:29 +11:00
1b023f7c8d iterator: improve reference semantics 2018-03-27 15:49:47 +11:00
93185775e6 coord/simd: template on arity and type 2018-03-23 17:52:08 +11:00
3409d39fc9 job/dispatch: add chunked image job queueing 2018-03-23 16:59:09 +11:00
490aab08bc iterator: retain rvalue sources when constructing zip/izip 2018-03-23 16:41:11 +11:00
86b1fa38c7 variadic: add filter call 2018-03-23 16:40:30 +11:00
cceadcba40 tuple/value: add explanatory comment for map 2018-03-23 16:39:35 +11:00
af77aad894 extent/region: simplify iteration over ranges 2018-03-23 16:38:54 +11:00
7568e34649 view: don't force const iterators for cbegin/cend 2018-03-23 14:40:40 +11:00
58843fb0c7 view: use trivial constructors and assignment
this allows us to fulfil the requirements of TriviallyCopyable which is
useful particularly in dumb allocators and job queues.
2018-03-23 14:10:57 +11:00
36f4ba035c thread: rename thread primitives from job namespace 2018-03-23 14:10:20 +11:00
6cd2bef17d tap: send output to the recorded stream, not cout 2018-03-22 16:11:13 +11:00
2d7e3e5d7d build: prefer iosfwd over iostream 2018-03-22 16:11:13 +11:00
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