Jason Volk
|
0fd8019149
|
ircd::ctx: Use thread_local keyword for current.
|
2020-02-11 12:18:25 -08:00 |
|
Jason Volk
|
0c43394446
|
ircd::ctx::ole: Fix struct namespace error.
|
2020-02-01 12:31:37 -08:00 |
|
Jason Volk
|
e2e4ea544b
|
ircd::ctx: Move paragraph in README.
|
2020-01-11 23:31:53 -08:00 |
|
Jason Volk
|
4ef3f6eab7
|
ircd::ctx: Add nice/ionice values to pool opts; propagate on spawn.
|
2020-01-06 12:19:38 -08:00 |
|
Jason Volk
|
78d300b3b7
|
ircd::ctx: Add nice/ionice values to context.
|
2020-01-06 12:19:38 -08:00 |
|
Jason Volk
|
df79d61395
|
ircd::util: Elide std::function overhead for util::unwind suite.
|
2019-12-03 13:39:49 -08:00 |
|
Jason Volk
|
d44da6c8fd
|
ircd::ctx: Add inline redefinition of coroutine_context::jump().
|
2019-10-10 19:34:01 -07:00 |
|
Jason Volk
|
7afb295c09
|
ircd::ctx: Partial inline continuation.
|
2019-10-10 19:33:49 -07:00 |
|
Jason Volk
|
864afd78e4
|
ircd::ctx: Fix trivial branch sequence causing L2 => I1 miss; hot section.
|
2019-10-09 22:07:17 -07:00 |
|
Jason Volk
|
7e21c1c8db
|
ircd::ctx: Ensure assert_critical() callsite DCE in non-debugmode.
|
2019-10-09 16:30:08 -07:00 |
|
Jason Volk
|
01af00bae0
|
ircd::ctx: Preliminary trilean logic concept (WIP).
|
2019-09-30 14:23:28 -07:00 |
|
Jason Volk
|
36b621e72b
|
ircd::ctx: Minor fix inconsistent header HAVE_ defines.
|
2019-09-30 14:23:28 -07:00 |
|
Jason Volk
|
39ade19ae3
|
ircd::ctx: Switch from steady_timer to deadline_timer.
|
2019-09-22 20:59:54 -07:00 |
|
Jason Volk
|
320af9e9b8
|
ircd::ctx: Add context::DEFER flag; cleanup ios::descriptor set.
|
2019-09-22 18:28:07 -07:00 |
|
Jason Volk
|
2f88540f3c
|
ircd::ctx: Expose critical_assertion related details.
|
2019-09-22 17:35:20 -07:00 |
|
Jason Volk
|
41646091f8
|
ircd::ctx: Experimental mitigations for return address misprediction on context switch.
|
2019-09-22 16:09:15 -07:00 |
|
Jason Volk
|
e2ed860c04
|
ircd::ctx::pool: Add wouldblock() convenience to interface.
|
2019-09-18 20:05:51 -07:00 |
|
Jason Volk
|
87fd0f04ea
|
ircd::ctx::mutex: Add deadlock assertion on lock.
|
2019-09-10 12:12:10 -07:00 |
|
Jason Volk
|
fcb4f6c5f4
|
ircd::ctx::mutex: Add waiting(ctx) to interface.
|
2019-09-10 11:06:16 -07:00 |
|
Jason Volk
|
ba11205f2c
|
ircd::ctx::dock: Add query to find if ctx is waiting on dock.
|
2019-09-10 11:06:16 -07:00 |
|
Jason Volk
|
efdc626495
|
ircd::ctx::list: Add typedefs for iteration suite closures.
|
2019-09-10 11:06:16 -07:00 |
|
Jason Volk
|
b6149b429e
|
ircd::ctx::dock: Add noexcept to interface observers.
ircd::ctx: Propagate noexcept on hot leafs;
ircd::ctx::list: Deinline size().
|
2019-09-10 11:06:11 -07:00 |
|
Jason Volk
|
42d56a7bac
|
ircd::ctx: Fix inconsistent refcount() behavior.
|
2019-09-08 18:22:05 -07:00 |
|
Jason Volk
|
a6747ad3a0
|
ircd::ctx::promise_base: Add refcount(promise_base&) to suite.
|
2019-09-08 16:33:38 -07:00 |
|
Jason Volk
|
5b2216fb63
|
ircd::ctx::shared_state_base: Add assertions; comments; minor cleanup.
|
2019-09-08 16:31:21 -07:00 |
|
Jason Volk
|
0a4cfc59be
|
ircd::ctx: Minor cleanup; tweak promise union; noexcept and linkage for ctors.
|
2019-09-07 13:45:43 -07:00 |
|
Jason Volk
|
9adba1b9dc
|
ircd::ctx: No need for mutable here.
|
2019-09-03 22:07:50 -07:00 |
|
Jason Volk
|
1210523757
|
ircd::ctx: Support shared futures.
|
2019-09-03 15:56:14 -07:00 |
|
Jason Volk
|
ebfaa508fd
|
ircd::ctx::ole: Move opts outside offload; reorg; minor cleanup.
|
2019-09-03 11:10:30 -07:00 |
|
Jason Volk
|
3c45487611
|
ircd::ctx: Improve readme paragraph.
|
2019-09-01 21:06:30 -07:00 |
|
Jason Volk
|
f211cc7429
|
Revert "ircd::ctx: Create vtables for promise and future."
This reverts commit d119d9a8c6 .
|
2019-09-01 21:06:30 -07:00 |
|
Jason Volk
|
d119d9a8c6
|
ircd::ctx: Create vtables for promise and future.
|
2019-08-29 14:17:46 -07:00 |
|
Jason Volk
|
13e2d56850
|
ircd::ctx::future: Ensure value is moved out.
|
2019-08-26 13:10:12 -07:00 |
|
Jason Volk
|
765ec46b91
|
ircd::ctx::promise: Inline trivial accessors; explicit bool operator.
|
2019-08-13 20:53:02 -07:00 |
|
Jason Volk
|
42b65fa271
|
ircd::ctx: Add noexcept specifications; tweak inlines.
|
2019-08-13 20:26:08 -07:00 |
|
Jason Volk
|
0efc56c9c7
|
ircd::ctx::future: Add non-std get() w/ durations to avoid separate wait().
|
2019-08-12 20:43:39 -07:00 |
|
Jason Volk
|
b4842da414
|
ircd::ctx::future: Restrict the future type cast operator; fix conflict.
|
2019-08-12 20:43:04 -07:00 |
|
Jason Volk
|
a2c05437d2
|
ircd::ctx: Export this_ctx down to ircd::.
|
2019-08-11 08:00:17 -07:00 |
|
Jason Volk
|
009d417273
|
ircd: Indicate noexcept on advised interfaces.
|
2019-08-05 16:19:20 -07:00 |
|
Jason Volk
|
f450028c77
|
ircd::ctx::future: Use our steady_clock now() here.
|
2019-07-24 17:07:16 -07:00 |
|
Jason Volk
|
bde9e16e5c
|
ircd::ctx: Inline cur_slice_cycles().
modules/media/magick: Use this_ctx::cycles_here().
ircd::ctx: Improve prof::cycles API related.
|
2019-07-23 16:40:29 -07:00 |
|
Jason Volk
|
6c9dbdbef5
|
ircd::ctx: Add queued(ctx) state to interface.
|
2019-07-21 18:07:26 -07:00 |
|
Jason Volk
|
471c08a41e
|
ircd::ctx: Split exception_handler w/ cxxabi header requirement.
|
2019-07-21 15:29:16 -07:00 |
|
Jason Volk
|
f64f41775d
|
ircd::ctx::future: Fix action.
|
2019-07-19 18:17:53 -07:00 |
|
Jason Volk
|
064f0b712c
|
ircd::log: Fixes for clang DCE.
|
2019-07-19 17:10:35 -07:00 |
|
Jason Volk
|
166236dfe8
|
ircd::ctx: Update README [skip ci]
|
2019-07-19 15:15:21 -07:00 |
|
Jason Volk
|
3301ed62f7
|
ircd::ctx: Fix future wait condition closing.
|
2019-07-19 14:46:57 -07:00 |
|
Jason Volk
|
51e3d7f081
|
ircd::ctx: Minor code-clarify/cleanup.
|
2019-07-19 14:42:46 -07:00 |
|
Jason Volk
|
48468a32f0
|
ircd::ctx: Add critical_assertion for when_() templates.
|
2019-07-17 18:10:34 -07:00 |
|
Jason Volk
|
598585a431
|
ircd::ctx: Simplify concurrent template.
modules/client/sync: Improve concurrent instantiation sites.
|
2019-07-15 13:09:33 -07:00 |
|
Jason Volk
|
5242432e0c
|
ircd::ctx: Add concurrent_for_each.
|
2019-07-14 13:40:04 -07:00 |
|
Jason Volk
|
c7a68a8cb3
|
ircd::ctx: Fix ctx::parallel argument allocation assumptions.
ircd::ctx: Rename tool.
|
2019-07-13 23:20:03 -07:00 |
|
Jason Volk
|
6e97a72c50
|
ircd::ctx::ole: Minor interface reorg.
|
2019-07-13 18:15:27 -07:00 |
|
Jason Volk
|
ae071552fb
|
ircd::ctx::ole: Add options structure; minor cleanup.
|
2019-07-11 15:51:09 -07:00 |
|
Jason Volk
|
cbd2f6f4c7
|
ircd::prof: Add extern keyword for c89 semantics via gnu_inline in clang for odr.
|
2019-06-24 01:33:41 -07:00 |
|
Jason Volk
|
ab32ef76d7
|
ircd::ctx::this_ctx: Fix inline namespace reopening for clang.
|
2019-06-23 07:37:23 -06:00 |
|
Jason Volk
|
f6067edcdf
|
ircd::ctx::async: Fix template default param using runtime extern.
|
2019-06-21 03:41:13 -07:00 |
|
Jason Volk
|
8474b891eb
|
ircd::ctx: Rename function; add overload for total value.
|
2019-05-26 02:49:24 -07:00 |
|
Jason Volk
|
e88f18d65c
|
ircd::ctx: Internalize prof::mark() for unconditional event counting.
|
2019-05-26 02:49:24 -07:00 |
|
Jason Volk
|
693cd317ff
|
ircd::ctx: Fix the sentinel iterator value for when_any() to last (end) not first.
|
2019-04-23 18:40:08 -07:00 |
|
Jason Volk
|
4db52804cb
|
ircd::ctx: Use iteration closure rather than exposing ctx::list.
|
2019-04-19 20:50:22 -07:00 |
|
Jason Volk
|
12df824cf4
|
ircd::ctx: Allow lambda transformation of the iterable for when_any()/when_all().
|
2019-04-18 16:07:24 -07:00 |
|
Jason Volk
|
8c68a24e1f
|
ircd::ctx::prof: Add cycle counter to ticker array.
|
2019-04-12 15:58:06 -07:00 |
|
Jason Volk
|
d8bf5b9fff
|
ircd::ctx: Add a syscall_usage_warning to suite.
|
2019-04-10 20:18:50 -07:00 |
|
Jason Volk
|
63c850b123
|
ircd: Rename perf:: to prof::.
|
2019-04-03 15:51:42 -07:00 |
|
Jason Volk
|
403bf52867
|
ircd::perf: Start a perf profiling subsystem; move ctx::prof counter utils.
|
2019-03-31 18:16:18 -07:00 |
|
Jason Volk
|
40b3bdaa89
|
ircd::ctx::prof: Add uint argument for rdpmc; minor cleanup.
|
2019-03-31 13:24:11 -07:00 |
|
Jason Volk
|
55241c5309
|
ircd::ctx: Expand the reference cycle counting interface.
|
2019-03-27 13:04:12 -07:00 |
|
Jason Volk
|
28063823dd
|
ircd::ctx: Inline rdtsc().
|
2019-03-27 13:04:12 -07:00 |
|
Jason Volk
|
6fbd29b1ed
|
ircd::ctx: Add context::WAIT_JOIN feature flag.
|
2019-03-27 13:04:12 -07:00 |
|
Jason Volk
|
77648137e9
|
Revert "ircd: Remove use of all unwind::exceptional and unwind::nominal devices."
This reverts commit 4f243826c2 .
|
2019-03-22 21:06:28 -07:00 |
|
Jason Volk
|
712409218e
|
ircd::ctx: Manipulate uncaught exception count on context switch.
|
2019-03-22 21:06:28 -07:00 |
|
Jason Volk
|
07b746d633
|
ircd::ctx: Add scope_notify device.
|
2019-03-21 16:46:04 -07:00 |
|
Jason Volk
|
4f243826c2
|
ircd: Remove use of all unwind::exceptional and unwind::nominal devices.
|
2019-03-12 18:41:05 -07:00 |
|
Jason Volk
|
87ace85840
|
ircd::ctx::promise: Add missing valid() checks on operations.
|
2019-02-28 17:12:04 -08:00 |
|
Jason Volk
|
af6ac4a2ac
|
ircd: Replace various unwind count patterns with scope_count.
|
2019-02-28 17:12:03 -08:00 |
|
Jason Volk
|
54224e9679
|
ircd::ctx: Add allocator to ctx::queue template.
|
2019-02-28 11:34:45 -08:00 |
|
Jason Volk
|
43797c2b74
|
ircd::ctx::queue: Switch to std::deque backing.
|
2019-02-28 10:12:30 -08:00 |
|
Jason Volk
|
4f721f48e5
|
Eliminate friend-injection.
|
2019-02-15 18:48:59 -08:00 |
|
Jason Volk
|
b687d63169
|
ircd::ctx: Create and use log facility.
|
2019-02-07 00:17:26 -08:00 |
|
Jason Volk
|
a30c808b0e
|
ircd: Start a README.md for any directory missing one; fix conformity of existing.
|
2019-01-26 12:29:08 -08:00 |
|
Jason Volk
|
3e9b830206
|
ircd::ctx::parallel: Block interruption when calling sender().
|
2019-01-25 17:03:29 -08:00 |
|
Jason Volk
|
79dc0955b4
|
ircd::ctx::parallel: Fix counter regressions.
|
2019-01-22 14:25:05 -08:00 |
|
Jason Volk
|
defed2c008
|
ircd::ctx::parallel: Use monotonic counters only; use copy for closure argument.
|
2019-01-21 12:22:50 -08:00 |
|
Jason Volk
|
52e6c28383
|
ircd::ctx::parallel: Simplify internal interface.
|
2019-01-18 14:54:04 -08:00 |
|
Jason Volk
|
8f4fe97286
|
ircd::ctx::parallel: Various cleanup; clarify counting mechanisms.
|
2019-01-17 15:51:41 -08:00 |
|
Jason Volk
|
4871928bfa
|
ircd::ctx: Partial de-inline of dock methods.
|
2019-01-13 13:57:34 -08:00 |
|
Jason Volk
|
84265c3a13
|
ircd::ctx::parallel: Ensure the counters are not affected by exceptions.
|
2019-01-01 21:15:10 -08:00 |
|
Jason Volk
|
7f4bb1a7db
|
ircd::ctx::parallel: Handle case for empty pool by executing receiver immediately.
|
2019-01-01 21:15:10 -08:00 |
|
Jason Volk
|
254e6c287d
|
ircd::ctx: Synchronize workers before rethrowing the eptr.
|
2019-01-01 17:05:15 -08:00 |
|
Jason Volk
|
16ebbbfa8a
|
ircd::ctx: Move and adjust default stack size.
|
2018-12-28 14:07:40 -08:00 |
|
Jason Volk
|
4a47b39298
|
ircd::ctx: Create and use an options structure for ctx::pool.
|
2018-12-28 12:57:32 -08:00 |
|
Jason Volk
|
c9c280c864
|
ircd::ctx: Simplify queue interface; remove access to dock.
|
2018-12-28 12:42:08 -08:00 |
|
Jason Volk
|
364302c212
|
ircd::ctx: Add soft and hard limit logic for submitting to pool.
|
2018-12-27 17:20:42 -08:00 |
|
Jason Volk
|
73459e75ff
|
ircd::ctx: Update assumptions for yielding during pool submit.
|
2018-12-27 16:30:04 -08:00 |
|
Jason Volk
|
4c5891e354
|
ircd::ctx: Block the caller after submit when parallel saturated.
|
2018-12-26 17:35:49 -08:00 |
|
Jason Volk
|
b0d5e5d4c8
|
ircd::ctx: Improve ctx::parallel template.
|
2018-12-26 17:19:03 -08:00 |
|
Jason Volk
|
3d79c94bb2
|
ircd::ctx: Add ctx::parallel device.
|
2018-12-24 18:36:56 -08:00 |
|
Jason Volk
|
9f70ce1b28
|
ircd::ctx: Add pool::min() convenience.
|
2018-12-24 16:20:03 -08:00 |
|
Jason Volk
|
387e8b8eed
|
ircd::ctx: Improve pool loop; improve log msg; add interruption point.
|
2018-12-24 12:06:05 -08:00 |
|