From 3be2c5cdd855a11223e0ecce142b017298424ae6 Mon Sep 17 00:00:00 2001 From: guodi Date: Tue, 19 Jan 2021 11:13:51 +0800 Subject: [PATCH 1/3] Fix the README spelling mistake Signed-off-by: guodi --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) mode change 100644 => 100755 README.md diff --git a/README.md b/README.md old mode 100644 new mode 100755 index 4005fc4..3132c81 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ EFSM总共分为两个部分: - EFSM核心:由uthash.h、efsm.h和efsm_conf.h三个文件组成;他们构成了事件驱动型状态机的核心;使用的时候只需要包含efsm.h即可; - EFSM扩展:在EFSM核心的基础上,增加efsmt.h和efsmt.c两个文件,这两个文件会根据具体的状态机创建状态机线程,用于驱动状态机运转;使用的时候只需要包含efsmt.h即可; -#### 二、接口总揽 +#### 二、接口总览 EFSM总共提供了两套接口,你只需要选择其中套用法即可。全部接口概述如下: @@ -135,7 +135,7 @@ typedef void (*EFSM_EVENT_HANDLER)(EFSM_EVENT_TYPE event, void *arg); - EFSM\_TRANSFER\_DISABLE(name)宏除能状态指针name的切换能力; - EFSM\_TRANSFER(name, state)宏执行状态指针name切换到state; -注意:做状态切换时,必须瞒住ENABLE()->TRANSFER()->DISABLE()的流程。这么做的目的,是为了让编程者思考:**状态设计与状态的跳转是否必要与合理**。 +注意:做状态切换时,必须满足ENABLE()->TRANSFER()->DISABLE()的流程。这么做的目的,是为了让编程者思考:**状态设计与状态的跳转是否必要与合理**。 #### 四、常见问题 -- Gitee From 123e5cc65f09a8eac1c49ec9f6736c042efcd120 Mon Sep 17 00:00:00 2001 From: guodi Date: Tue, 19 Jan 2021 11:41:18 +0800 Subject: [PATCH 2/3] Modify the gitignore file Signed-off-by: guodi --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 42d201a..a14141c 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,6 @@ build *.so* examples/main examples/efsm-test - +.ycm* +.Space* +.tags -- Gitee From 9fdd6de1a7d70824c7356cbf88f3d8511b16de21 Mon Sep 17 00:00:00 2001 From: guodi Date: Tue, 19 Jan 2021 16:46:10 +0800 Subject: [PATCH 3/3] Modify efsmt_create_inl: thread_attr define but not use Signed-off-by: guodi --- source/efsmt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/efsmt.c b/source/efsmt.c index 295584d..447941b 100644 --- a/source/efsmt.c +++ b/source/efsmt.c @@ -42,7 +42,7 @@ bool efsmt_create_inl(EFSMT_OBJECT *efsmt_o, void *(*thread)(void *)) if(pthread_attr_setstacksize(&thread_attr, stack_size) != 0) return false; - if(pthread_create(&efsmt_o->_thread_id, NULL, thread, NULL) != 0) + if(pthread_create(&efsmt_o->_thread_id, &thread_attr, thread, NULL) != 0) { EFSM_PRINT_INL("EFSMT-Error: %s pthread_create failed, errno:%d,error:%s!!!\n", efsmt_o->_name, errno, strerror(errno)); return false; -- Gitee