Okay, but wasnt that commit fixing the deadlock you had in the join?

Further more, after evas_thread_exited is 1 only eina deals with this
thread, not evas_thread_renderer.c so not waiting for the thread there
seems to be fine IMO, but keeping the code smaller is probebly better.

Greetings
   Marcel Hollerbach

On Tue, Sep 05, 2017 at 02:25:50PM +0200, Jean Guyomarc'h wrote:
> ​​Hi,
> 
> I think this is just wrong.
> 
> It evas_thread_exited is True, it does not mean that the thread is actually
> finished. eina_thread_join() should be called **unconditionally** in this
> case.
> It is specified that if the thread is terminated, then pthread_join()
> (eina_thread's backend) will return immediately.
> 
> BR
> 
> 
> Jean
> 
> On Tue, Sep 5, 2017 at 2:16 PM, Marcel Hollerbach <
> [email protected]> wrote:
> 
> > bu5hm4n pushed a commit to branch master.
> >
> > http://git.enlightenment.org/core/efl.git/commit/?id=
> > e41d46c635bdf769d4b93da609883347168c719a
> >
> > commit e41d46c635bdf769d4b93da609883347168c719a
> > Author: Marcel Hollerbach <[email protected]>
> > Date:   Mon Sep 4 19:44:03 2017 +0200
> >
> >     evas_thread: only join the thread if the thread is still alive
> >
> >     otherwise we might join a invalid thread id, that could lead to a
> >     deadlock. Lets not do that.
> >
> >     ref T5245
> >
> >     @fix
> > ---
> >  src/lib/evas/common/evas_thread_render.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/src/lib/evas/common/evas_thread_render.c
> > b/src/lib/evas/common/evas_thread_render.c
> > index bbde81a657..62f0ba1577 100644
> > --- a/src/lib/evas/common/evas_thread_render.c
> > +++ b/src/lib/evas/common/evas_thread_render.c
> > @@ -260,8 +260,8 @@ evas_thread_shutdown(void)
> >               goto timeout_shutdown;
> >            }
> >       }
> > -
> > -   eina_thread_join(evas_thread_worker);
> > +   if (!evas_thread_exited)
> > +     eina_thread_join(evas_thread_worker);
> >  timeout_shutdown:
> >     eina_lock_free(&evas_thread_queue_lock);
> >     eina_condition_free(&evas_thread_queue_condition);
> >
> > --
> >
> >
> >
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> enlightenment-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to