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