Jason Volk
446f319391
ircd::ctx::posix: Trapdoor complex allowing real pthreads to work again.
2021-01-04 01:12:49 -08:00
Jason Volk
e37a775e9b
ircd::ctx::posix: Add interface to toggle hook; split header internal/external.
2021-01-04 01:12:39 -08:00
Danilo Spinella
d8ff6172ef
ircd/ctx/posix.h: Add typedef for __clockid_t to fix build on musl
...
__clockid_t is not POSIX, add it as a typedef to clockid_t, when needed.
2020-12-23 03:56:43 -08:00
Jason Volk
07ec766ff9
ircd::ios: Consolidate dispatch/post/defer interfaces; minor fixes.
2020-12-20 06:02:50 -08:00
Jason Volk
e91c845de5
ircd::ctx: Minor move misplaced comment. [ci skip]
...
ircd:Ⓜ️ :acquire: Remove stale comment. [ci skip]
2020-12-12 18:18:28 -08:00
Jason Volk
fbc3ab87e9
ircd::ctx: Add interface to change name; implement posix handler.
2020-11-13 21:07:14 -08:00
Jason Volk
30796e5729
ircd::buffer: Fix template name conflicts for clang-11; apply inline linkages.
...
ircd::json::tuple: Fix template name related for clang-11.
ircd::ctx: Fix template related for clang-11; inline linkages.
ircd:Ⓜ️ 🪝 Fix template related for clang-11.
2020-10-29 04:06:59 -07:00
Jason Volk
dc388a0f09
ircd::ctx: Use vg::stack registration in stack allocator.
2020-10-16 14:32:06 -07:00
Jason Volk
339e86d2b8
ircd::ctx: Hoist various function static descriptor objects; inline courtesy yield().
2020-10-16 05:19:14 -07:00
Jason Volk
2eb4b84019
ircd::ctx: Add missing shared_state already_t w/ value ctor.
2020-10-15 04:55:38 -07:00
Jason Volk
ad41fb69a9
ircd::ctx: Support user-supplied stacks.
2020-10-14 02:22:45 -07:00
Jason Volk
28eaf63543
ircd::ctx: Convey allocated stack for context to context at entry.
2020-10-14 02:22:45 -07:00
Jason Volk
6c89faee13
ircd::ctx::posix: Enforce noexcept on the full surface.
2020-09-29 16:09:10 -07:00
Jason Volk
669c8d0d0f
ircd::ctx: Remove leaf attribute; use hot section attribute in unit.
2020-08-23 02:32:54 -07:00
Jason Volk
07830f1413
ircd::ctx: Integrate slice cycle counters with ios.
2020-08-21 10:43:04 -07:00
Jason Volk
52013c1ee0
ircd::ctx::list: Reduce out-of-line accessor surface.
2020-07-11 18:51:19 -07:00
Jason Volk
6ec9b2a783
ircd: Specify explicit noexcept for gcc-10 issue.
2020-07-11 17:57:33 -07:00
Jason Volk
cd95b7cd8d
ircd::ctx: Specify inline linkage for various templates to prevent any dynsyms.
2020-07-11 15:41:57 -07:00
Jason Volk
8ffa5c55a5
ircd::ctx::latch: Replace closure w/ simple bind statement.
2020-07-11 14:07:08 -07:00
Jason Volk
505fe310a8
ircd::ctx: Inline various codepaths leading to flags(ctx).
...
ircd::ctx: Inline cheap prof::get() wrappings.
2020-06-18 03:56:09 -07:00
Jason Volk
e938081404
ircd::ctx: Add watchdog log facility.
2020-05-24 17:42:32 -07:00
Jason Volk
ac42d4df13
ircd::ctx: Measure and report epoch span for slice_usage_warning.
2020-05-24 17:14:02 -07:00
Jason Volk
f070e3b706
ircd::ctx: Condition on RB_DEBUG rather than NDEBUG for slice_usage_warning tool.
2020-05-24 17:14:02 -07:00
Jason Volk
9213d31f1d
ircd::ctx: Inline interruptible(ctx, ...) manipulators.
2020-05-19 15:55:18 -07:00
Jason Volk
3c96120e72
ircd::ctx: Add some noexcept; minor comment justification.
2020-05-18 19:57:54 -07:00
Jason Volk
00fe4baa2a
ircd::ctx: Add direct flags reference accessor to interface.
2020-05-18 19:57:54 -07:00
Jason Volk
ce3a57bfce
ircd::ctx::uninterruptible: Add defaulted runtime bool construction.
2020-05-18 18:43:17 -07:00
Jason Volk
b3dbf0cd01
ircd::ctx: Start an interpositionable posix thread interface.
2020-05-04 16:09:39 -07:00
Jason Volk
18f215d3f0
ircd: Move main_thread assertion related to ctx; adjust condition.
2020-05-04 16:09:39 -07:00
Jason Volk
77dc612735
ircd::ctx: Various assertions for current context.
2020-05-04 13:15:45 -07:00
Jason Volk
a776565ce0
ircd::ctx: Fixes and assertions for shared_mutex upgrade lockable semantics.
2020-05-04 13:15:45 -07:00
Jason Volk
926795f01a
ircd::ctx: Use context pointer for mutex/shared_mutex acquisition state.
2020-05-04 13:15:45 -07:00
Jason Volk
d72124f7c6
ircd::ctx: Bring condition_variable up to parity with ctx::dock.
2020-05-04 13:15:45 -07:00
Jason Volk
f9015b8336
ircd::ctx::dock: Minor reorg.
2020-05-02 23:57:53 -07:00
Jason Volk
32230ed2d4
ircd::ctx: Profile peak stack usage at slice leave event.
2020-04-23 12:41:39 -07:00
Jason Volk
5a27958fa0
ircd::ctx: Unify access to ctx::stack, expose structure; remove cruft.
2020-04-23 12:41:38 -07:00
Jason Volk
6679b66806
ircd::prof: Move ctx::syscall_usage_warning into prof.
2020-03-06 15:43:24 -08:00
Jason Volk
a6131d1268
ircd::ctx: Split sleep()/wait() suites into headers.
2020-02-28 09:11:06 -08:00
Jason Volk
628b194151
ircd::ctx: Relax member access.
2020-02-24 16:44:15 -08:00
Jason Volk
c3349b9d40
ircd::ctx::dock: Add convenience interface for interrupt/terminate/notify.
2020-02-19 16:16:53 -08:00
Jason Volk
43f5ebe8e3
ircd::ctx: Inline the interruptible/uninterruptible instanced interface.
2020-02-19 08:40:15 -08:00
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