.: 14 commits - binaryurp/source comphelper/inc comphelper/Library_comphelp.mk comphelper/prj comphelper/source configmgr/source cui/Library_cui.mk cui/prj cui/source dbaccess/source desktop/Library_deploymentgui.mk desktop/Library_sofficeapp.mk desktop/prj desktop/source extensions/Library_pcr.mk extensions/prj extensions/source filter/Library_filterconfig.mk filter/Library_xsltfilter.mk filter/prj filter/source forms/Library_frm.mk forms/prj forms/source jvmfwk/plugins pyuno/prj pyuno/source salhelper/inc salhelper/Library_salhelper.mk salhelper/Package_inc.mk salhelper/source sal/inc sal/Package_inc.mk svtools/inc svtools/source ucb/source

Michael Stahl mstahl at redhat.com
Thu Feb 23 05:56:54 PST 2012


hi Stephan,

On 23/02/12 10:48, Stephan Bergmann wrote:

> +void salhelper::Thread::launch() {
> +    SAL_INFO("salhelper.thread", "launch " << name_);
> +    // Assumption is that osl::Thread::create returns normally iff it causes
> +    // osl::Thread::run to start executing:

looks like this assumption which you moved there is actually wrong

> +    acquire();
> +    try {
> +        create();
> +    } catch (...) {
> +        release();
> +        throw;
> +    }


>     sal_Bool SAL_CALL create()
>     {
>         assert(m_hThread == 0); // only one running thread per instance
>            if (m_hThread)
>             return sal_False;
> 
>         m_hThread = osl_createSuspendedThread( threadFunc, (void*)this);
>         if ( m_hThread )
>             osl_resumeThread(m_hThread);
> 
>         return m_hThread != 0;
>     }

doesn't look like anything throws here, given those are C functions...

how about the attached patch?


More information about the LibreOffice mailing list