Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-01-21 | correct: Work around a compiler mis-optimization | Raimo Niskanen | |
This was not a compiler optimization that misfired, rather that the code neede separate case clauses for when the timer was running and not, so to not call erlang:cancel_timer/1 nor maps:remove/2 in the case clause where only a map update was needed before recursion. See the comment in loop_timouts_cancel/13 | |||
2019-01-17 | Write some more comments in the engine loop | Raimo Niskanen | |
2019-01-17 | Work around a compiler mis-optimization | Raimo Niskanen | |
The common subexpression optimization accidentally caused unnecessary spilling of live registers. A rather ugly workaround can be found in loop_timeouts_cancel. | |||
2019-01-17 | Move out helper functions to engine loop | Raimo Niskanen | |
This strategy improves speed benchmarks and reduces the amount of garbage that is produced. More: * Handle transition options as loop function arguments instead of in a record. * Shorten the state_enter loop and make it more efficient by making it more part of the loop and less a loop restart. * Simplify the internal timeout action handling somewhat. | |||
2019-01-15 | Handle #trans_opts{} fields in parse_actions() arguments | Raimo Niskanen | |
2019-01-14 | Optimize gen_statem engine loop | Raimo Niskanen | |
* Use synchronolus cancel_timer since that is more efficient than asynchronous when a process cancels its own timer * Restructure the state to have fewer fields by breaking out practically constant fields into a separate loop argument record #params{}, group state and data into one field and dito for timer fields * Optimize engine loop arguments for staying in the loop so the detour to sys:handle_system_message/6 will require packing/unpacking of the sys: state, and of the argument Parent * Avoid double reverse of event queue in many cases * Restructure the state transition to not have duplicate tracks for sys_debug and non-sys_debug cases * Shortcut the empty list case where possible * Loop unroll reversal of up to 2-element lists to avoid calling lists:reverse/2 since an external call spills all live registers to the stack * Bring out the callback mode check to the engine loop | |||
2018-11-30 | sys:log timeout 0 events | Raimo Niskanen | |
2018-11-30 | Adjust sys:log(N, get) to documentation | Raimo Niskanen | |
2018-11-30 | Unify system_events in gen_* | Raimo Niskanen | |
2018-11-30 | Log code change | Raimo Niskanen | |
2018-11-30 | Use from/1 type check | Raimo Niskanen | |
2018-11-16 | Limit more error_logger terms | Raimo Niskanen | |
2018-11-16 | Add client stacktrace | Raimo Niskanen | |
2018-11-16 | Print sys:log in error report | Raimo Niskanen | |
2018-09-10 | Clean up and optimize code and doc | Raimo Niskanen | |
2018-06-13 | Merge branch 'raimo/stdlib/gen_statem-dev/OTP-14015' | Raimo Niskanen | |
* raimo/stdlib/gen_statem-dev/OTP-14015: Show state changes in sys:trace | |||
2018-06-12 | Show state changes in sys:trace | Raimo Niskanen | |
2018-06-08 | [logger] Change base OTP domain from [beam,erlang,otp] to [otp] | Siri Hansen | |
2018-05-21 | Remove logger env vars for format_depth, max_size and utc | Siri Hansen | |
These are replaced by new config handling and must not be used any more. | |||
2018-04-26 | Start using logger internally in kernel and stdlib | Siri Hansen | |
2018-04-12 | Fix timeout parsing and doc feedback | Raimo Niskanen | |
2018-03-22 | Improve error reasons from state enter call | Raimo Niskanen | |
2018-03-22 | Merge branch 'maint' | Raimo Niskanen | |
* maint: Updated OTP version Update release notes Update version numbers ssh: Fix bad spec for double_algs() in ssh.hrl Test event insert from init Fix init to allow all actions Conflicts: OTP_VERSION | |||
2018-03-15 | Fix init to allow all actions | Raimo Niskanen | |
2018-03-02 | kernel,stdlib: Remove obsolete use of send with 'noconnect' | Sverker Eriksson | |
as workarounds to avoid blocking auto-connect, which is now asynchronous in OTP-21. Also changed old catch to more efficient try-catch. | |||
2018-02-06 | stdlib: Do not call erlang:get_stacktrace() | Hans Bolinder | |
2018-01-24 | Merge branch 'maint' | Raimo Niskanen | |
Conflicts: lib/stdlib/src/gen_statem.erl | |||
2018-01-16 | Optimize plain call response time | Raimo Niskanen | |
2017-10-11 | Merge pull request #1595 from ↵ | Raimo Niskanen | |
RaimoNiskanen/raimo/stdlib/gen_statem-clean_timeout-infinity/OTP-13073 Change gen_statem:call(_, _, {clean_timeout,infinity}) to use proxy | |||
2017-10-10 | Update gen_statem.erl | Ruan Pienaar | |
2017-10-09 | Change {clean_timeout,infinity} to use proxy | Raimo Niskanen | |
2017-09-05 | stdlib: add Unicode translation modifier in debug format funs | Siri Hansen | |
This is now ok since sys opens the debug file with encoding utf8. Conflicts: lib/stdlib/src/gen_server.erl | |||
2017-09-05 | stdlib : Improve handling of Unicode | Hans Bolinder | |
2017-05-18 | stdlib: Limit the size of gen_statem's error events | Hans Bolinder | |
The postponed events, the user state and data, and the error reason are all limited in error events (if the Kernel variable error_logger_format_depth is set). | |||
2017-05-02 | Rolled back loop_receive function. HibernateAfterTimeout timeout used even ↵ | Anton N Ryabkov | |
in case of active timers exists. Added unit tests for hibernate_after functionality combined with gen_statem timers. | |||
2017-05-02 | "auto_hibernate_timeout" option renamed to "hibernate_after". | Anton N Ryabkov | |
It was done because "hibernate_after" option already used in ssl for the same reason. | |||
2017-05-02 | Added support of auto_hibernate_timeout option for gen_statem. | Anton N Ryabkov | |
2017-04-21 | Implement {timeout,Name} timeouts | Raimo Niskanen | |
2017-04-20 | Implement erlang:start_timer opts | Raimo Niskanen | |
2017-04-20 | Make Module:init/1 mandatory | Raimo Niskanen | |
2017-02-23 | Make code_change/4 optional | Raimo Niskanen | |
2017-02-23 | Implement fallback for terminate/3 | Raimo Niskanen | |
2017-02-22 | Stop pampering with stacktraces | Raimo Niskanen | |
2017-02-22 | Clean up timer handling | Raimo Niskanen | |
2017-02-07 | Remove event timer optimization | Raimo Niskanen | |
Handle the event timer more like other timers and do not optimize the odd case of combining an event timeout with inserting custom events, wich by definition cancels the event timeout. | |||
2017-02-07 | Clean up timer handling | Raimo Niskanen | |
2017-02-03 | Reduce number of loop variables hence code mass | Raimo Niskanen | |
2017-02-02 | Optimize by using async cancel_timer | Raimo Niskanen | |
2017-02-01 | Bugfix: callback mode not cached after code change | Raimo Niskanen | |
Fix lots of internal state updates just before termination that could cause crash reports confused about timers. | |||
2017-01-30 | Implement repeat_state and repeat_state_and_data | Raimo Niskanen | |