0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-06-26 05:48:20 +02:00
Commit graph

284 commits

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