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
