0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-11-18 07:50:57 +01:00
Commit graph

102 commits

Author SHA1 Message Date
Jason Volk
76e48b3ef3 ircd::ctx: Test for valid then() before calling from here. 2018-08-28 18:58:09 -07:00
Jason Volk
a4e4424ede ircd: Improve main control flow for termination condition during init. 2018-08-28 15:04:23 -07:00
Jason Volk
2a11c33c9f ircd::ctx: More list assertions. 2018-08-27 01:45:31 -07:00
Jason Volk
edbc0984c5 ircd::ctx: Linkage for default and move semantics of ctx::context. 2018-08-26 20:46:59 -07:00
Jason Volk
6cdb1bba63 ircd::ctx: Add pool::set convenience. 2018-08-22 14:37:40 -07:00
Jason Volk
7fb2a825a1 ircd::ctx: Minor cleanup. 2018-08-21 08:10:37 -07:00
Jason Volk
57ea362daa ircd::ctx: Fix stale comment. 2018-08-21 04:57:36 -07:00
Jason Volk
85d4a4f5ed ircd::ctx: Further tweak interruption masking semantics. 2018-08-19 20:11:41 -07:00
Jason Volk
ff66bc441c ircd::ctx: Stack uninterruptible's gracefully; assume context. 2018-08-19 20:11:41 -07:00
Jason Volk
10434c96c5 ircd::ctx: Consistent use of interruption. 2018-08-19 18:29:46 -07:00
Jason Volk
38c5679b5a ircd::ctx: Use terminate() rather than interrupt() during ~context(). 2018-08-19 18:18:15 -07:00
Jason Volk
1492770f6b ircd::ctx: Various minor fixes. 2018-08-19 18:09:04 -07:00
Jason Volk
ccf5b79e6a ircd::ctx: Allow this_ctx::interruption toggle to no-op if no ctx. 2018-08-19 17:43:25 -07:00
Jason Volk
b796668a77 ircd::ctx: Minor movement/cleanup. 2018-08-19 16:21:33 -07:00
Jason Volk
f4a4674daa ircd::ctx::pool: Add a terminate(); cleanup del(). 2018-08-19 15:55:35 -07:00
Jason Volk
141f4e1c0a ircd::ctx: Move this branch condition. 2018-08-17 21:31:54 -07:00
Jason Volk
fe69a41255 ircd::ctx::pool: Fix dtor; use terminate() rather than interrupt(). 2018-08-17 12:51:49 -07:00
Jason Volk
c8902654a0 ircd::ctx: Detach context in dtor on main/async stacks. 2018-05-28 07:04:06 -07:00
Jason Volk
5b52ac3103 ircd::ctx: Remove argument from continuation ctor. 2018-05-25 23:50:20 -07:00
Jason Volk
3746c25f20 ircd::ctx::ole: Add crude pooling. 2018-05-25 20:21:36 -07:00
Jason Volk
956c67beca ircd::ctx: Use dock for better adjoindre semantics. 2018-05-22 18:06:18 -07:00
Jason Volk
f68f3bbb9c ircd::ctx: Organize stack and profile related into specific structures. 2018-05-22 18:03:18 -07:00
Jason Volk
0e169fe4a4 ircd::ctx: Stop interrupt propagation at pool function base. 2018-05-22 05:49:38 -07:00
Jason Volk
d901257745 ircd::ctx: Use NOINTERRUPT flag for termination suppression as well. 2018-05-22 00:24:48 -07:00
Jason Volk
f17f9685ec ircd::ctx::ole: Use interrupt suppression scope while offloaded. 2018-05-22 00:22:57 -07:00
Jason Volk
7e8ec1ca63 ircd::ctx: Support interrupt suppression; suite. 2018-05-22 00:22:56 -07:00
Jason Volk
5000397f12 ircd::ctx: Fix erroneous comment. 2018-05-07 12:37:44 -07:00
Jason Volk
e15ac0d1d3 ircd::ctx: Add state for counting context switches. 2018-05-07 12:36:33 -07:00
Jason Volk
003ecf6357 ircd: Remove / update various ctx::interrupted catch blocks for ctx::terminated. 2018-05-06 02:06:08 -07:00
Jason Volk
48055cb276 ircd::ctx: Add special termination interruption to yanagiba the stack. 2018-05-06 02:06:08 -07:00
Jason Volk
1059688d02 ircd::ctx: Add state for stack usage profiling; clarify some interfaces. 2018-05-05 23:14:11 -07:00
Jason Volk
f55304e0a1 ircd::ctx: Add slice total counter; move check_stack after timing sample. 2018-05-05 22:42:25 -07:00
Jason Volk
ea42490b4e ircd::ctx: Consolidate slice timing to tsc; add public interfacing. 2018-05-05 22:24:25 -07:00
Jason Volk
ec0153c4da ircd::ctx: Split into internal header. 2018-05-05 21:24:17 -07:00
Jason Volk
0f161f98e8 ircd::ctx::list: Fix misleading reference. 2018-04-28 03:26:07 -07:00
Jason Volk
dc5ac7c2ac ircd::ctx: #ifdef away linkages for ctx assertions in NDEBUG builds. 2018-04-27 19:16:56 -07:00
Jason Volk
09c282fd8e ircd::ctx: Add stack_usage_assertion; move stack_usage_here() into this_ctx::. 2018-04-27 19:09:26 -07:00
Jason Volk
2a7cb42c98 ircd::ctx: Minor ctx object semantic elaboration. 2018-04-20 00:44:45 -07:00
Jason Volk
1dcfff91a5 ircd::ctx: Expose stack_max() to public interface. 2018-04-19 21:42:54 -07:00
Jason Volk
35a1c62b1f ircd::ctx: Add ctx::running()/waiting() for interface completeness. 2018-04-19 21:42:54 -07:00
Jason Volk
3b32d2170e ircd::ctx: Give ctx::ctx the instance_list. 2018-04-19 21:42:54 -07:00
Jason Volk
281a9e1cfd ircd::ctx: Place ctx::list node pointers into structure in ctx. 2018-04-19 21:42:54 -07:00
Jason Volk
793c24ce9e ircd::ctx: Simplify list iteration API. 2018-04-19 14:47:56 -07:00
Jason Volk
fb6a4fc6ac ircd::ctx: Bypass the exception_handler assertion if on bare metal. 2018-04-07 11:08:07 -07:00
Jason Volk
7995c20c50 ircd::ctx::pool: Change dispatching from notify_one() to notify(). 2018-04-04 22:54:58 -07:00
Jason Volk
f07eed2ab9 ircd::ctx: Relax the assertion for uncaught exceptions on context switch. 2018-03-28 14:11:33 -07:00
Jason Volk
c6b9c06302 ircd::ctx: Avoid any possible ambiguities with location of *current. 2018-03-26 23:29:57 -07:00
Jason Volk
a2eb756548 ircd::ctx: Split this_ctx:: from ctx.h; minor reorg. 2018-03-25 02:04:42 -07:00
Jason Volk
441a692dfc ircd::ctx: Device to allow context switching in exception handler. 2018-03-24 18:00:04 -07:00
Jason Volk
7dbfb061e9 ircd::ctx: Assert no yielding during exception handling due to ABI limitations. 2018-03-24 15:53:15 -07:00