Age | Commit message (Collapse) | Author | |
---|---|---|---|
2016-10-26 | Log terminate to sys debug | Raimo Niskanen | |
2016-10-26 | Optimize event timeout | Raimo Niskanen | |
Do not start an event timer unless there are no enqueued events. | |||
2016-10-26 | Rework timeout handling | Raimo Niskanen | |
Handling of timers and timeouts has been cleaned up and generalized. Semantic change regarding state timeout zero: Previously if one state caused a state timeout zero and managed to stay in the same state to insert additional timeout zero(s) in the next state callback invocation, then there would be only one timeout zero event. The mindset was that the machine was faster then the timeout zero. This has changed with the mindset that all state callback invocations should be independent, so now the machine will get one state timeout zero event per started state timeout zero. Note that just using zero timeouts is fairly esoteric... | |||
2016-10-24 | Fix doc and type for state enter calls | Raimo Niskanen | |
2016-10-14 | Fix race condition in cancel_timer/1 | Raimo Niskanen | |
2016-10-13 | Use parameterized types | Raimo Niskanen | |
2016-10-12 | Implement state timeouts | Raimo Niskanen | |
2016-10-04 | Improve docs and types | Raimo Niskanen | |
2016-09-30 | Change state entry events into state enter calls | Raimo Niskanen | |
2016-09-16 | Implement state entry events | Raimo Niskanen | |
2016-09-16 | Implement call/3 dirty_timeout | Raimo Niskanen | |
2016-08-18 | Improve sys debug | Raimo Niskanen | |
2016-08-17 | Handle exceptions in init/1 and callback_mode/0 | Raimo Niskanen | |
2016-08-17 | Clarify error values | Raimo Niskanen | |
2016-08-10 | Doc fixes | Raimo Niskanen | |
2016-07-27 | Rewrite gen_statem for M:callback_mode/0 | Raimo Niskanen | |
2016-07-18 | Fix type and template errors from bugs.erlang.org: ERL-172 and ERL-187 | Raimo Niskanen | |
2016-05-04 | Fix documentation | Raimo Niskanen | |
2016-04-28 | Clean up terminate functions | Raimo Niskanen | |
2016-04-27 | Fix callback mode after code change not used | Raimo Niskanen | |
2016-04-27 | Restructure loop_* to clarify S handling | Raimo Niskanen | |
2016-04-27 | Fix hibernation subtlety | Raimo Niskanen | |
2016-04-21 | Modify code_change/4 to return CallbackMode | Raimo Niskanen | |
Also move check of non-atom states in callback mode state_functions to where the state function is called. This gives homogenous diagnostics for state functions, code_change/4 and system_replace_state StateFun. Irregularities pointed out by James Fish. | |||
2016-04-12 | Fix missing short forms for event timeout | Raimo Niskanen | |
2016-03-18 | Do more intricate Fred Hebert doc changes | Raimo Niskanen | |
2016-03-17 | Change Caller -> From as suggested by Fred Hebert | Raimo Niskanen | |
2016-03-03 | Rename state_timeout -> event_timeout | Raimo Niskanen | |
2016-03-03 | Fix most of the system docs and emacs mode | Raimo Niskanen | |
2016-03-02 | Change code_change/4 to {ok,State,Data} | Raimo Niskanen | |
2016-02-29 | Sharpen test suite | Raimo Niskanen | |
2016-02-29 | Remove the remove_event action and all alike | Raimo Niskanen | |
Removing events from the internal queues is not necessary with the choosen semantics of the event queue vs. hibernate. In an early implementation it was possible by combining hibernate with e.g. postpone to get an event in the queue that you would not see before processing the postponed event, and therefore should you decide to cancel a timer it was essential to be able to remove that unseen event from the queue. With the choosen semantics you will have to postpone or generate an event for it to be in the event queue, and if you e.g. postpone a timeout event and then cancel the timer it is your mistake. You have seen the event and should know better than to try to cancel the timer. So, the actions: remove_event, cancel_timer, demonitor and unlink are now removed. There have also been some cleanup of the timer handling code. | |||
2016-02-26 | Relax caller() type check and cleanup | Raimo Niskanen | |
2016-02-26 | Optimize postponed handling | Raimo Niskanen | |
2016-02-26 | Allow actions without containing list | Raimo Niskanen | |
Type check atom state as early as possible | |||
2016-02-26 | Implement 'keep_state_and_data' and 'stop' | Raimo Niskanen | |
2016-02-25 | Remove {keep_state_and_data} | Raimo Niskanen | |
Correct typo reported by Luïc Hoguin. | |||
2016-02-24 | Type check in API | Raimo Niskanen | |
2016-02-24 | Ditch PrevState | Raimo Niskanen | |
StateName/4 -> StateName/3 handle_event/5 -> handle_event/4 | |||
2016-02-24 | Make first next_event in list arrive first | Raimo Niskanen | |
Define options as actions that set options, rework the documentation about this. | |||
2016-02-24 | Ditch State so StateName/5 -> StateName/4 | Raimo Niskanen | |
2016-02-23 | Add {stop_and_reply,Reason,Replies [,Data]) | Raimo Niskanen | |
Cleanup some error handling | |||
2016-02-23 | Rename Client -> Caller | Raimo Niskanen | |
2016-02-22 | Make callback_option() mandatory | Raimo Niskanen | |
2016-02-19 | Hide Data in default format_status/2 if callback crashes | Raimo Niskanen | |
2016-02-19 | Update terminology to data(), transition_op(), etc | Raimo Niskanen | |
2016-02-19 | Add reply([Reply]) | Raimo Niskanen | |
2016-02-19 | Add {keep_state,...} and {keep_state_and_data,...} | Raimo Niskanen | |
2016-02-18 | Change initial PrevState to 'undefined' | Raimo Niskanen | |
2016-02-18 | Write some convenience helpers | Raimo Niskanen | |
2016-02-18 | Rename retry -> postpone | Raimo Niskanen | |