0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-07-05 01:58:35 +02:00
Commit graph

257 commits

Author SHA1 Message Date
Jason Volk d72124f7c6 ircd::ctx: Bring condition_variable up to parity with ctx::dock. 2020-05-04 13:15:45 -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 dd1e016ec5 ircd::ctx: Don't zero stack.max at completion. 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 2fbb7d1521 ircd::ctx: Eliminate strand from ctx. 2020-02-27 12:44:57 -08:00
Jason Volk c1737e167c ircd::ios: Employ the asio::executor abstraction w/ backward-compat. 2020-02-27 12:44:57 -08:00
Jason Volk d0b0c4e23c ircd::ctx: Use better namespace identifier on call. 2020-02-25 11:20:16 -08:00
Jason Volk d6d83f6498 ircd::ctx: Move the asio override definition to section; optimize linkage. 2020-02-25 10:35:16 -08:00
Jason Volk ea30ee38f9 ircd::ctx: Optimize asio timer cancel action for ctx::wake(). 2020-02-23 16:23:25 -08:00
Jason Volk 43cf0050ee ircd::ctx: Use post rather than defer for self yield. 2020-02-23 12:15:55 -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 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 b415ec3125 ircd::ctx: Remove branch never taken. 2019-10-10 19:57:46 -07:00
Jason Volk 7afb295c09 ircd::ctx: Partial inline continuation. 2019-10-10 19:33:49 -07:00
Jason Volk 5ac73dc7f9 ircd::ctx: Remove return prefetches here. 2019-10-09 23:55: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 8981439867 ircd::ctx::context: Add POST flag for bare-metal constructions; minor cleanup. 2019-10-03 13:46:12 -07:00
Jason Volk d3809d43e5 Reorganize Makefiles. 2019-09-27 19:35:26 -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 3e648fff19 ircd::ctx: Use a continuation in spawn to straddle any direct context switch. 2019-09-22 18:02:46 -07:00
Jason Volk 2f88540f3c ircd::ctx: Expose critical_assertion related details. 2019-09-22 17:35:20 -07:00
Jason Volk 4a51b3382c ircd::ctx: Move the internal ctx struct ctor out of class. 2019-09-22 16:44:34 -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 0fff520a72 ircd::ctx::ctx: Split the interruption condition check from the throwing code. 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 4ed000e6ab ircd::ios: Comment on constant_tsc issues with operating system suspend/hibernate. 2019-09-14 18:15:09 -07:00
Jason Volk b980461a62 ircd::ctx: Relax assertion for nested interruption masks. 2019-09-12 18:37:33 -07:00
Jason Volk 949c765cd9 ircd::ctx: Additional internal wrappers in hot section. 2019-09-10 15:23:44 -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 01c364cc24 ircd::ctx: Minor cleanup for promise/future list traversal; remove mutable_cast. 2019-09-04 15:40:30 -07:00
Jason Volk a205e722f3 ircd::ctx: Fix valid pointer range condition. 2019-09-03 22:09:43 -07:00
Jason Volk 2c20f0a659 ircd::ctx: Fix invalidation of the promise list head after ready.
ircd::ctx: Fix check for pending on invalidate_futures().
2019-09-03 17:55:05 -07:00
Jason Volk 1210523757 ircd::ctx: Support shared futures. 2019-09-03 15:56:14 -07:00
Jason Volk 84c1aef0d6 ircd::ctx: Ensure a full-width zero'ing. 2019-09-03 13:52:28 -07:00
Jason Volk c53a1fa12b ircd::ctx: Set zero values after base frame unwind. 2019-08-27 20:58:52 -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