On Mon, 2 May 2011 07:20:38 +0200 (CEST) Vincent Torri <[email protected]> wrote:
> > > On Mon, 2 May 2011, Mike Blumenkrantz wrote: > > > On Mon, 2 May 2011 07:01:36 +0200 (CEST) > > Vincent Torri <[email protected]> wrote: > > > >> > >> > >> On Mon, 2 May 2011, Carsten Haitzler (The Rasterman) wrote: > >> > >>> On Sun, 1 May 2011 16:16:43 +0200 (CEST) Vincent Torri > >>> <[email protected]> said: > >>> > >>>> > >>>> > >>>> On Sun, 1 May 2011, Enlightenment SVN wrote: > >>>> > >>>>> Log: > >>>>> oh dear. this new eina_lock thing is a bit of a mess isn't it now? > >>>>> some fundamental errors there. don't go replacing pthread locks with > >>>>> wrappers unless you know full well what u are doing. havnig threads > >>>>> only work while "threads are initted" and then init/shtudown the thread > >>>>> thing every time u spawn a thread.. is pretty silly. what if a thread > >>>>> ends in the background WHILE u have a lock.. u try unlock.. u know > >>>>> what ? your unlock DOES nothing. so you retain a lock. next time u > >>>>> want to lock once a thread is around.. u have a deadlock issue. > >>>>> > >>>>> even better - the checking if threads are initted and up is not > >>>>> locked, so it can come up while it is being checked. more race > >>>>> conditions. u need to clokc the init/shutdown AND lock the checking of > >>>>> the value... and even then u STILl have problem #1 above. so that code > >>>>> is now gone. > >>>>> > >>>>> also trylock trturn inverse logic to the original pthread func and the > >>>>> macros in evas that used it were not changed accordingly! aaagh! > >>>>> > >>>>> i've also added backtrace debug ability to eina threads if compiled in > >>>>> - u can get a bt of who last locked something. i had to do this just to > >>>>> begin to grasp what on earth was going on. it's off by default. > >>>>> also... the locks are error check locks to trylock can detect > >>>>> deadlocks. speacil "2" return for now. better than a poke in the eye > >>>>> with a sharp stick until we decide what to do. for now i hopew i have > >>>>> killed this thread lock bug. > >>>> > >>>> can i try to mimic that to debug threads on Windows too ? > >>> > >>> do you have a working "backtrace". yes - gnu extensions. :) or you mean > >>> the deadlock detection thats in pthread for error check locks? > >> > >> For backtrace, I have that with vc++: > >> > >> http://msdn.microsoft.com/en-us/library/ff552119%28VS.85%29.aspx > >> > >> This function has already been used to capture the stack in Boost. > >> > >> Otherwise, with mingw, I think that I have backtrace(). > >> > >> about deadlock, I don't know. I'm not very good with threads... > >> > >> Vincent > >> > >>> > >>>> Vincent > > Do you have something like helgrind/drd tools from valgrind that you can > > use on Windows? That's probably what you would want to find an equivalent > > for debugging deadlocks. > > valgrind does not work on Windows, but I have found some doc in MSDN > > http://msdn.microsoft.com/en-us/library/ms810303.aspx > > I'll check that later. i have other problems, with ecore_con :) /me flees > > Vincent -- Mike Blumenkrantz Zentific: NULL pointer dereferences now 50% off! ------------------------------------------------------------------------------ WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
