David Walthall wrote:
> Hello. (I tried posting this in devel last week, but Thunderbird
> crashed during the posting, so I don't think it ever made it.)
>
> I was looking into a crash I got from TortoiseSVN. Although I
> wasn't able to get much information, I did have the debug symbols
> loaded, so I was able to get a stack trace.
> The stack trace was:
> std::_Tree<....>::insert // std::set<CShellExt*>::insert
> CShellExt::CShellExt
> CShellExtClassFactory::CreateInstance
>
> Is there more than thread that creates/destroys CShellExt objects? If
> so, shouldn't 'std::set<CShellExt *> g_exts' be protected by a mutex
> since the constructor and destructor modify g_exts? My understanding is
> that std::set is *not* thread-safe for simultaneous writes to the same
> object from different threads.
>
> Here is my information:
> TortoiseSVN 1.6.99, Build 16635 - 64 Bit -dev, 2009/06/24 18:04:53
> Subversion 1.6.4, -dev
> apr 1.3.5
> apr-utils 1.3.7
> neon 0.28.4
> OpenSSL 0.9.8k 25 Mar 2009
> zlib 1.2.3
>
> Thanks,
> David
>
> PS A mutex is also required for g_exts if
> DllMain(...,DLL_PROCESS_DETACH,...) can be called while other threads
> are creating/destroying CShellExt objects in other threads.
Thanks for the detailed analysis!
Should be fixed in r16654.
Stefan
--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest Interface to (Sub)Version Control
/_/ \_\ http://tortoisesvn.net
------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2366661
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2009-06-30 12:33:50 CEST