From 0792d2102908a1008b08c37e1015ba5e6cb88882 Mon Sep 17 00:00:00 2001 From: Tuncer Ayaz Date: Thu, 7 Mar 2013 11:41:28 +0100 Subject: Fix gen_fsm example code --- system/doc/design_principles/fsm.xml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'system/doc') diff --git a/system/doc/design_principles/fsm.xml b/system/doc/design_principles/fsm.xml index bd19b88e2d..7decbb48cd 100644 --- a/system/doc/design_principles/fsm.xml +++ b/system/doc/design_principles/fsm.xml @@ -75,7 +75,7 @@ StateName(Event, StateData) -> -export([init/1, locked/2, open/2]). start_link(Code) -> - gen_fsm:start_link({local, code_lock}, code_lock, Code, []). + gen_fsm:start_link({local, code_lock}, code_lock, lists:reverse(Code, []). button(Digit) -> gen_fsm:send_event(code_lock, {button, Digit}). @@ -106,7 +106,8 @@ open(timeout, State) -> calling code_lock:start_link(Code):

start_link(Code) -> - gen_fsm:start_link({local, code_lock}, code_lock, Code, []). + gen_fsm:start_link({local, code_lock}, code_lock, lists:reverse(Code), []). +

start_link calls the function gen_fsm:start_link/4. This function spawns and links to a new process, a gen_fsm.

@@ -130,8 +131,8 @@ start_link(Code) -> corresponding to one process contained in one module.

-

The third argument, Code, is a term which is passed - as-is to the callback function init. Here, init +

The third argument, Code, is a list of digits which is passed + reversed to the callback function init. Here, init gets the correct code for the lock as indata.

-- cgit v1.2.3