gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnash-commit] [SCM] Gnash branch, master, updated. release_0_8_9_fi


From: Sandro Santilli
Subject: Re: [Gnash-commit] [SCM] Gnash branch, master, updated. release_0_8_9_final-2042-g711f2a3
Date: Thu, 22 May 2014 08:26:01 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Wed, May 21, 2014 at 09:31:33PM +0000, Bastiaan Jacques wrote:

> commit 711f2a3c560868bce4fa6816f557e330bac95319
> Author: Bastiaan Jacques <address@hidden>
> Date:   Wed May 21 23:28:46 2014 +0200
> 
>     Remove the barrier mechanism, because access to _thread is already
>     mutex-protected.

[...]

> @@ -118,7 +115,6 @@ SWFMovieLoader::isSelfThread() const
>  void
>  SWFMovieLoader::execute(SWFMovieLoader& ml, SWFMovieDefinition* md)
>  {
> -    ml._barrier.wait(); // let _thread assignment happen before going on
>      md->read_all_swf();
>  }
>  
> @@ -137,8 +133,6 @@ SWFMovieLoader::start()
>      _thread.reset(new boost::thread(std::bind(
>                      execute, std::ref(*this), &_movie_def)));
>  
> -    _barrier.wait(); // let execution start befor returning
> -
>      return true;
>  }

IIRC, the problem was with quitting gnash right after start, but
before the loading thread had a chance to start.
The result was that the main thread could not "join" the thread
because the _thread variable was still unassigned, but while quitting
the thread would start and try to access now-deleted memory, resulting
in a crash.

--strk;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]