On Thu, 2 Feb 2012 18:00:09 +0900
Carsten Haitzler (The Rasterman) <ras...@rasterman.com> wrote:

> On Wed, 01 Feb 2012 03:06:01 +0000 (GMT) Jeong-Hyun Yun
> <jh0506....@samsung.com> said:
> 
> > Dear All.
> > 
> > I removed potential risk in ecore_ipc_shutdown.
> > 
> > If servers can't eina_list removed in ecore_ipc_server_del(), 
> > for example, delete_me is true or event_count  == 0 or etc.,
> > then the while loop will be infinite.
> > 
> > I modified EINA_LIST_FOREACH instead of while loop.
> > 
> > Please review this patch.
> 
> this is dangerous. very. take a look at this line in ecore_ipc_server_del():
> 
>         servers = eina_list_remove(servers, svr);
> 
> so what happens when as you walk a list.. you remove the exact item you are
> walking... then you try use the list node ->next member.. that you just
> freed? :)
> 
> this is not a fix. it's asking for segv's.
> 
> you issue is this:
> 
>    if (svr->event_count == 0)
> 
> 
> ie it wont remove until events have been spooled out from the server. this
> wont happen until the mainloop goes and runs again, so you have a problem.
> what i'd do is have a routine before u server_del that finds all events for
> that server and deletes them. :) the problem is that there isn't a list of
> these per server. all the events point back to this server so u basically
> have a referencing issue. if a ref that wont be removed until mainlooop
> flushes the events. you want to look over there.
> 
well said. to fix this correctly, I suggest looking at a similar mechanism
which already exists to do this in ecore-con.

------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to