Repository: incubator-mynewt-core Updated Branches: refs/heads/develop a4aa979aa -> 851880542
MYNEWT-626 Replace os_task_suspend() with remove. Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/85188054 Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/85188054 Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/85188054 Branch: refs/heads/develop Commit: 851880542d521316cf2d1339887e367497562bd0 Parents: a4aa979 Author: Christopher Collins <ccoll...@apache.org> Authored: Fri Feb 10 17:04:07 2017 -0800 Committer: Christopher Collins <ccoll...@apache.org> Committed: Fri Feb 10 17:04:07 2017 -0800 ---------------------------------------------------------------------- apps/testbench/src/testbench_mutex.c | 16 ++++++++-------- apps/testbench/src/testbench_sem.c | 8 ++++---- kernel/os/include/os/os_sched.h | 2 +- kernel/os/include/os/os_task.h | 3 +-- kernel/os/src/os_sched.c | 15 ++++++++------- kernel/os/src/os_task.c | 6 +++--- 6 files changed, 25 insertions(+), 25 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/85188054/apps/testbench/src/testbench_mutex.c ---------------------------------------------------------------------- diff --git a/apps/testbench/src/testbench_mutex.c b/apps/testbench/src/testbench_mutex.c index 85bf684..59c8158 100644 --- a/apps/testbench/src/testbench_mutex.c +++ b/apps/testbench/src/testbench_mutex.c @@ -56,19 +56,19 @@ testbench_mutex_tc_posttest(void* arg) int taskcount = (int) arg; if (taskcount >= 1) { - err = os_task_suspend(&task1); + err = os_task_remove(&task1); TEST_ASSERT(err == OS_OK); } if (taskcount >= 2) { - err = os_task_suspend(&task2); + err = os_task_remove(&task2); TEST_ASSERT(err == OS_OK); } if (taskcount >= 3) { - err = os_task_suspend(&task3); + err = os_task_remove(&task3); TEST_ASSERT(err == OS_OK); } if (taskcount >= 4) { - err = os_task_suspend(&task4); + err = os_task_remove(&task4); TEST_ASSERT(err == OS_OK); } @@ -100,19 +100,19 @@ testbench_mutex_posttest(void* arg) int taskcount = (int) arg; if (taskcount >= 1) { - err = os_task_suspend(&task1); + err = os_task_remove(&task1); TEST_ASSERT(err == OS_OK); } if (taskcount >= 2) { - err = os_task_suspend(&task2); + err = os_task_remove(&task2); TEST_ASSERT(err == OS_OK); } if (taskcount >= 3) { - err = os_task_suspend(&task3); + err = os_task_remove(&task3); TEST_ASSERT(err == OS_OK); } if (taskcount >= 4) { - err = os_task_suspend(&task4); + err = os_task_remove(&task4); TEST_ASSERT(err == OS_OK); } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/85188054/apps/testbench/src/testbench_sem.c ---------------------------------------------------------------------- diff --git a/apps/testbench/src/testbench_sem.c b/apps/testbench/src/testbench_sem.c index 5801a60..a14a36f 100644 --- a/apps/testbench/src/testbench_sem.c +++ b/apps/testbench/src/testbench_sem.c @@ -44,19 +44,19 @@ testbench_sem_posttest(void* arg) int taskcount = (int) arg; if (taskcount >= 1) { - err = os_task_suspend(&task1); + err = os_task_remove(&task1); TEST_ASSERT(err == OS_OK); } if (taskcount >= 2) { - err = os_task_suspend(&task2); + err = os_task_remove(&task2); TEST_ASSERT(err == OS_OK); } if (taskcount >= 3) { - err = os_task_suspend(&task3); + err = os_task_remove(&task3); TEST_ASSERT(err == OS_OK); } if (taskcount >= 4) { - err = os_task_suspend(&task4); + err = os_task_remove(&task4); TEST_ASSERT(err == OS_OK); } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/85188054/kernel/os/include/os/os_sched.h ---------------------------------------------------------------------- diff --git a/kernel/os/include/os/os_sched.h b/kernel/os/include/os/os_sched.h index df14ced..1ac5c8d 100644 --- a/kernel/os/include/os/os_sched.h +++ b/kernel/os/include/os/os_sched.h @@ -35,7 +35,7 @@ void os_sched_os_timer_exp(void); os_error_t os_sched_insert(struct os_task *); int os_sched_sleep(struct os_task *, os_time_t nticks); int os_sched_wakeup(struct os_task *); -int os_sched_suspend(struct os_task *); +int os_sched_remove(struct os_task *); void os_sched_resort(struct os_task *); os_time_t os_sched_wakeup_ticks(os_time_t now); http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/85188054/kernel/os/include/os/os_task.h ---------------------------------------------------------------------- diff --git a/kernel/os/include/os/os_task.h b/kernel/os/include/os/os_task.h index 64c0850..3b7e652 100644 --- a/kernel/os/include/os/os_task.h +++ b/kernel/os/include/os/os_task.h @@ -47,7 +47,6 @@ struct os_task_obj typedef enum os_task_state { OS_TASK_READY = 1, OS_TASK_SLEEP = 2, - OS_TASK_SUSPEND = 3 } os_task_state_t; /* Task flags */ @@ -99,7 +98,7 @@ struct os_task { int os_task_init(struct os_task *, const char *, os_task_func_t, void *, uint8_t, os_time_t, os_stack_t *, uint16_t); -int os_task_suspend(struct os_task *t); +int os_task_remove(struct os_task *t); uint8_t os_task_count(void); http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/85188054/kernel/os/src/os_sched.c ---------------------------------------------------------------------- diff --git a/kernel/os/src/os_sched.c b/kernel/os/src/os_sched.c index da90de1..0cbe615 100644 --- a/kernel/os/src/os_sched.c +++ b/kernel/os/src/os_sched.c @@ -19,6 +19,7 @@ #include "os/os.h" #include "os/queue.h" +#include "os_priv.h" #include <assert.h> @@ -29,9 +30,8 @@ * @{ */ -TAILQ_HEAD(, os_task) g_os_run_list = TAILQ_HEAD_INITIALIZER(g_os_run_list); - -TAILQ_HEAD(, os_task) g_os_sleep_list = TAILQ_HEAD_INITIALIZER(g_os_sleep_list); +struct os_task_list g_os_run_list = TAILQ_HEAD_INITIALIZER(g_os_run_list); +struct os_task_list g_os_sleep_list = TAILQ_HEAD_INITIALIZER(g_os_sleep_list); struct os_task *g_current_task; @@ -194,12 +194,12 @@ os_sched_sleep(struct os_task *t, os_time_t nticks) } /** - * os sched suspend + * os sched remove * * XXX * NOTE - This routine is currently experimental and not ready for common use * - * Stops a task and removes it from the run list + * Stops a task and removes it from the task list. * * @return int * @@ -207,7 +207,7 @@ os_sched_sleep(struct os_task *t, os_time_t nticks) * the scheduler */ int -os_sched_suspend(struct os_task *t) +os_sched_remove(struct os_task *t) { if (t->t_state == OS_TASK_SLEEP) { @@ -215,10 +215,11 @@ os_sched_suspend(struct os_task *t) } else if (t->t_state == OS_TASK_READY) { TAILQ_REMOVE(&g_os_run_list, t, t_os_list); } - t->t_state = OS_TASK_SUSPEND; t->t_next_wakeup = 0; t->t_flags |= OS_TASK_FLAG_NO_TIMEOUT; + STAILQ_REMOVE(&g_os_task_list, t, os_task, t_os_task_list); + return OS_OK; } http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/85188054/kernel/os/src/os_task.c ---------------------------------------------------------------------- diff --git a/kernel/os/src/os_task.c b/kernel/os/src/os_task.c index f3106bd..45c48a1 100644 --- a/kernel/os/src/os_task.c +++ b/kernel/os/src/os_task.c @@ -153,12 +153,12 @@ err: } /* - * Suspend specified task + * Removes specified task * XXX * NOTE: This interface is currently experimental and not ready for common use */ int -os_task_suspend(struct os_task *t) +os_task_remove(struct os_task *t) { struct os_task *current; int rc; @@ -202,7 +202,7 @@ os_task_suspend(struct os_task *t) } OS_ENTER_CRITICAL(sr); - rc = os_sched_suspend(t); + rc = os_sched_remove(t); OS_EXIT_CRITICAL(sr); return rc; }