Browse Source

fix hloop_stop

ithewei 4 years ago
parent
commit
9e2244e4d0
1 changed files with 2 additions and 10 deletions
  1. 2 10
      event/hloop.c

+ 2 - 10
event/hloop.c

@@ -409,19 +409,11 @@ int hloop_wakeup(hloop_t* loop) {
     return 0;
     return 0;
 }
 }
 
 
-static void hloop_stop_event_cb(hevent_t* ev) {
-    ev->loop->status = HLOOP_STATUS_STOP;
-}
-
 int hloop_stop(hloop_t* loop) {
 int hloop_stop(hloop_t* loop) {
-    loop->status = HLOOP_STATUS_STOP;
     if (hv_gettid() != loop->tid) {
     if (hv_gettid() != loop->tid) {
-        hevent_t ev;
-        memset(&ev, 0, sizeof(ev));
-        ev.priority = HEVENT_HIGHEST_PRIORITY;
-        ev.cb = hloop_stop_event_cb;
-        hloop_post_event(loop, &ev);
+        hloop_wakeup(loop);
     }
     }
+    loop->status = HLOOP_STATUS_STOP;
     return 0;
     return 0;
 }
 }