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.

-- 
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

Reply via email to