Commit Graph

16 Commits

Author SHA1 Message Date
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