summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
Diffstat (limited to 'components')
-rw-r--r--components/dfs/filesystems/jffs2/src/gcthread.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/components/dfs/filesystems/jffs2/src/gcthread.c b/components/dfs/filesystems/jffs2/src/gcthread.c
index 3807e705b1..0aad0ae3ae 100644
--- a/components/dfs/filesystems/jffs2/src/gcthread.c
+++ b/components/dfs/filesystems/jffs2/src/gcthread.c
@@ -203,7 +203,13 @@ jffs2_stop_garbage_collect_thread(struct jffs2_sb_info *c)
GC_THREAD_FLAG_HAS_EXIT,
RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,
RT_WAITING_FOREVER, &e);
- RT_ASSERT(result == RT_EOK);
+ if (result == -RT_ETIMEOUT) {
+ LOG_E("wait completed timeout");
+ return;
+ }else if (result == -RT_ERROR) {
+ LOG_E("event received error");
+ return;
+ }
// Kill and free the resources ... this is safe due to the flag
// from the thread.
@@ -230,7 +236,13 @@ jffs2_garbage_collect_thread(unsigned long data)
RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,
cyg_current_time() + CYGNUM_JFFS2_GS_THREAD_TICKS,
&flag);
- RT_ASSERT(result == RT_EOK);
+ if (result == -RT_ETIMEOUT) {
+ LOG_E("wait completed timeout");
+ continue;
+ }else if (result == -RT_ERROR) {
+ LOG_E("event received error");
+ continue;
+ }
if (flag & GC_THREAD_FLAG_STOP)
break;