Damn, it was commited while I was in the middle of doing the release, but
we will have a 1.7.4 really soon to match the final release of E17, so no
worries.

--lf


On Fri, Dec 7, 2012 at 3:57 PM, Eduardo Lima (Etrunko) <[email protected]>wrote:

> Shit, missed the release for 5min. :/
>
> On Fri, Dec 7, 2012 at 3:55 PM, Enlightenment SVN
> <[email protected]> wrote:
> > Log:
> > Backport 80476.
> >
> >   ecore-wayland: Fix monitoring ECORE_FD_WRITE defaultly on
> >                  wayland display fd lead to 100% cpu usage
> >
> >   In ecore_wl_init(), adding wayland display fd with ECORE_FD_WRITE
> >   flag make CPU usage 100%. The proper way to monitor the ECORE_FD_WRITE
> >   is when the wl_display_flush() return value < 0 and errno == EAGAIN.
> >   And if wl_display_flush() return, we remove ECORE_FD_WRITE flag from
> >   the display fd.
> >
> >   Patch by: Alex Wu <[email protected]>
> >
> >
> >
> > Author:       etrunko
> > Date:         2012-12-07 09:55:37 -0800 (Fri, 07 Dec 2012)
> > New Revision: 80479
> > Trac:         http://trac.enlightenment.org/e/changeset/80479
> >
> > Modified:
> >   branches/ecore-1.7/src/lib/ecore_wayland/ecore_wl.c
> >
> > Modified: branches/ecore-1.7/src/lib/ecore_wayland/ecore_wl.c
> > ===================================================================
> > --- branches/ecore-1.7/src/lib/ecore_wayland/ecore_wl.c 2012-12-07
> 17:52:51 UTC (rev 80478)
> > +++ branches/ecore-1.7/src/lib/ecore_wayland/ecore_wl.c 2012-12-07
> 17:55:37 UTC (rev 80479)
> > @@ -33,6 +33,7 @@
> >
> >  /* local function prototypes */
> >  static Eina_Bool _ecore_wl_shutdown(Eina_Bool close);
> > +static Eina_Bool _ecore_wl_cb_idle_enterer(void *data);
> >  static Eina_Bool _ecore_wl_cb_handle_data(void *data, Ecore_Fd_Handler
> *hdl);
> >  static void _ecore_wl_cb_handle_global(void *data, struct wl_registry
> *registry, unsigned int id, const char *interface, unsigned int version
> __UNUSED__);
> >  static Eina_Bool _ecore_wl_xkb_init(Ecore_Wl_Display *ewd);
> > @@ -164,10 +165,11 @@
> >
> >     _ecore_wl_disp->fd_hdl =
> >       ecore_main_fd_handler_add(_ecore_wl_disp->fd,
> > -                               ECORE_FD_READ | ECORE_FD_WRITE,
> > +                               ECORE_FD_READ,
> >                                 _ecore_wl_cb_handle_data, _ecore_wl_disp,
> >                                 NULL, NULL);
> >
> > +   ecore_idle_enterer_add(_ecore_wl_cb_idle_enterer, _ecore_wl_disp);
> >     wl_list_init(&_ecore_wl_disp->inputs);
> >     wl_list_init(&_ecore_wl_disp->outputs);
> >
> > @@ -422,10 +424,32 @@
> >     return _ecore_wl_init_count;
> >  }
> >
> > +static Eina_Bool
> > +_ecore_wl_cb_idle_enterer(void *data)
> > +{
> > +   Ecore_Wl_Display *ewd;
> > +   int ret;
> > +
> > +   if (!(ewd = data)) return ECORE_CALLBACK_RENEW;
> > +
> > +   ret = wl_display_flush(ewd->wl.display);
> > +   if (ret < 0 && errno == EAGAIN)
> > +     {
> > +        ecore_main_fd_handler_active_set(ewd->fd_hdl, ECORE_FD_READ |
> ECORE_FD_WRITE);
> > +     }
> > +   else if (ret < 0)
> > +     {
> > +      /* FIXME: need do error processing? */
> > +     }
> > +
> > +   return ECORE_CALLBACK_RENEW;
> > +}
> > +
> >  static Eina_Bool
> >  _ecore_wl_cb_handle_data(void *data, Ecore_Fd_Handler *hdl)
> >  {
> >     Ecore_Wl_Display *ewd;
> > +   int ret;
> >
> >     /* LOGFN(__FILE__, __LINE__, __FUNCTION__); */
> >
> > @@ -438,7 +462,15 @@
> >     if (ecore_main_fd_handler_active_get(hdl, ECORE_FD_READ))
> >       wl_display_dispatch(ewd->wl.display);
> >     else if (ecore_main_fd_handler_active_get(hdl, ECORE_FD_WRITE))
> > -     wl_display_flush(ewd->wl.display);
> > +     {
> > +        ret = wl_display_flush(ewd->wl.display);
> > +        if (ret == 0)
> > +          ecore_main_fd_handler_active_set(hdl, ECORE_FD_READ);
> > +        else if (ret == -1 && errno != EAGAIN)
> > +          {
> > +            /* FIXME: need do error processing? */
> > +          }
> > +     }
> >
> >     return ECORE_CALLBACK_RENEW;
> >  }
> >
> >
> >
> ------------------------------------------------------------------------------
> > LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
> > Remotely access PCs and mobile devices and provide instant support
> > Improve your efficiency, and focus on delivering more value-add services
> > Discover what IT Professionals Know. Rescue delivers
> > http://p.sf.net/sfu/logmein_12329d2d
> > _______________________________________________
> > enlightenment-svn mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn
>
>
>
> --
> Eduardo de Barros Lima ◤✠◢
> [email protected]
>
>
> ------------------------------------------------------------------------------
> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
> Remotely access PCs and mobile devices and provide instant support
> Improve your efficiency, and focus on delivering more value-add services
> Discover what IT Professionals Know. Rescue delivers
> http://p.sf.net/sfu/logmein_12329d2d
> _______________________________________________
> enlightenment-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>



-- 
Luís Felipe Strano Moraes
http://www.strano.org
------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to