You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by cc...@apache.org on 2017/02/11 01:04:54 UTC

incubator-mynewt-core git commit: MYNEWT-626 Replace os_task_suspend() with remove.

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 <cc...@apache.org>
Authored: Fri Feb 10 17:04:07 2017 -0800
Committer: Christopher Collins <cc...@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;
 }