backport in 1.0 ? Vincent
On Mon, 21 Feb 2011, Enlightenment SVN wrote: > Log: > Fix: ecore-file inotify fd would be duplicated in children > on fork. Have it detecti this on next monitor add and re-init > the inotify fd and fd handler. > > > > Author: raster > Date: 2011-02-21 22:09:46 -0800 (Mon, 21 Feb 2011) > New Revision: 57228 > Trac: http://trac.enlightenment.org/e/changeset/57228 > > Modified: > trunk/ecore/ChangeLog > trunk/ecore/src/lib/ecore_file/ecore_file_monitor_inotify.c > > Modified: trunk/ecore/ChangeLog > =================================================================== > --- trunk/ecore/ChangeLog 2011-02-22 01:55:08 UTC (rev 57227) > +++ trunk/ecore/ChangeLog 2011-02-22 06:09:46 UTC (rev 57228) > @@ -58,3 +58,9 @@ > > * Remove 300 second timeout so large downloads work in ecore_con. > > +2011-02-22 Carsten Haitzler (The Rasterman) > + > + * Fix: ecore-file inotify fd would be duplicated in children > + on fork. Have it detecti this on next monitor add and re-init the > + inotify fd and fd handler. > + > > Modified: trunk/ecore/src/lib/ecore_file/ecore_file_monitor_inotify.c > =================================================================== > --- trunk/ecore/src/lib/ecore_file/ecore_file_monitor_inotify.c > 2011-02-22 01:55:08 UTC (rev 57227) > +++ trunk/ecore/src/lib/ecore_file/ecore_file_monitor_inotify.c > 2011-02-22 06:09:46 UTC (rev 57228) > @@ -47,6 +47,7 @@ > > static Ecore_Fd_Handler *_fdh = NULL; > static Ecore_File_Monitor *_monitors = NULL; > +static pid_t _inotify_fd_pid = -1; > > static Eina_Bool _ecore_file_monitor_inotify_handler(void *data, > Ecore_Fd_Handler *fdh); > static Ecore_File_Monitor *_ecore_file_monitor_inotify_monitor_find(int wd); > @@ -64,7 +65,7 @@ > fd = inotify_init(); > if (fd < 0) > return 0; > - > + > _fdh = ecore_main_fd_handler_add(fd, ECORE_FD_READ, > _ecore_file_monitor_inotify_handler, > NULL, NULL, NULL); > if (!_fdh) > @@ -73,6 +74,7 @@ > return 0; > } > > + _inotify_fd_pid = getpid(); > return 1; > } > > @@ -90,6 +92,7 @@ > ecore_main_fd_handler_del(_fdh); > close(fd); > } > + _inotify_fd_pid = -1; > return 1; > } > > @@ -103,6 +106,14 @@ > Ecore_File_Monitor *em; > int len; > > + if (_inotify_fd_pid == -1) return NULL; > + > + if (_inotify_fd_pid != getpid()) > + { > + ecore_file_monitor_inotify_shutdown(); > + ecore_file_monitor_inotify_init(); > + } > + > em = calloc(1, sizeof(Ecore_File_Monitor_Inotify)); > if (!em) return NULL; > > > > ------------------------------------------------------------------------------ > Index, Search & Analyze Logs and other IT data in Real-Time with Splunk > Collect, index and harness all the fast moving IT data generated by your > applications, servers and devices whether physical, virtual or in the cloud. > Deliver compliance at lower cost and gain new business insights. > Free Software Download: http://p.sf.net/sfu/splunk-dev2dev > _______________________________________________ > enlightenment-svn mailing list > enlightenment-...@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn > > ------------------------------------------------------------------------------ Index, Search & Analyze Logs and other IT data in Real-Time with Splunk Collect, index and harness all the fast moving IT data generated by your applications, servers and devices whether physical, virtual or in the cloud. Deliver compliance at lower cost and gain new business insights. Free Software Download: http://p.sf.net/sfu/splunk-dev2dev _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel