evas/async_events: fix async events counting
authorUlisses Furquim <ulisses@profusion.mobi>
Mon, 14 Jan 2013 20:02:31 +0000 (20:02 +0000)
committerUlisses Furquim <ulisses@profusion.mobi>
Mon, 14 Jan 2013 20:02:31 +0000 (20:02 +0000)
Before we returned the number of async events handled.
Even if nobody uses that let's fix it.

SVN revision: 82775

src/lib/evas/canvas/evas_async_events.c

index f424787..3b4e18a 100644 (file)
@@ -123,10 +123,25 @@ _evas_async_events_process_single(void)
    int ret, wakeup;
 
    ret = read(_fd_read, &wakeup, sizeof(int));
+   if (ret < 0)
+     {
+        switch (errno)
+          {
+           case EBADF:
+           case EINVAL:
+           case EIO:
+           case EISDIR:
+              _fd_read = -1;
+          }
+
+        return ret;
+     }
+
    if (ret == sizeof(int))
      {
         Evas_Event_Async *ev;
         unsigned int len, max;
+        int nr;
 
         eina_lock_take(&async_lock);
 
@@ -144,6 +159,7 @@ _evas_async_events_process_single(void)
         eina_lock_release(&async_lock);
 
         DBG("Evas async events queue length: %u", len);
+        nr = len;
 
         while (len > 0)
           {
@@ -152,22 +168,10 @@ _evas_async_events_process_single(void)
              len--;
           }
 
-        return 1;
+        return nr;
      }
 
-   if (ret < 0)
-     {
-        switch (errno)
-          {
-           case EBADF:
-           case EINVAL:
-           case EIO:
-           case EISDIR:
-              _fd_read = -1;
-          }
-     }
-
-   return ret;
+   return 0;
 }
 
 EAPI int