OK, fixed in trunk.
Why it was that way for RTEMS and not every other platform is beyond me!
Robert Jongbloed
OPAL/OpenH323 Architect and Co-founder.
> -----Original Message-----
> From: openh323-devel-bounces@xxxxxxxxxxxxxxxxxxxxx [mailto:openh323-
> devel-bounces@xxxxxxxxxxxxxxxxxxxxx] On Behalf Of Thien Nguyen
> Sent: Tuesday, 19 August 2008 6:03 PM
> To: openh323-devel@xxxxxxxxxxxxxxxxxxxxx
> Subject: [Openh323-devel] Bug : PRandom::Number() is not thread-safe
> with VC++ compiler.
>
> Dear OpenH323 developers,
>
> With VC++ compiler ( and some other compilers), the static object at
> block scope is not thread-safe.
>
> http://blogs.msdn.com/oldnewthing/archive/2004/03/08/85901.aspx
>
>
> Therefore, the following method is not thread-safe.
>
> // pwlib/src/ptclib/random.cxx
>
> unsigned PRandom::Number()
> {
> #ifndef P_RTEMS
> static PMutex mutex; // <-- not thread-safe
> #endif
> PWaitAndSignal wait(mutex);
>
> static PRandom rand;
> return rand;
> }
>
> Here is a "error" scenario :
>
> a. First thread comes and try to initialize the static object
> "PMutex mutex" but not finish this task.
>
> b. Second thread comes and thinks that the static object PMutex
> mutex was initialize. Therefore, it excecutes "PWaitAndSignal
> wait(mutex)" : bug will happen because the mutex is not completely
> initialized.
>
> Suggestion : move "static PMutex mutex;" into file scope.
>
> Thank for reading.
>
>
>
> ---------------------------------------------------------------------
> ----
> This SF.Net email is sponsored by the Moblin Your Move Developer's
> challenge
> Build the coolest Linux based applications with Moblin SDK & win
> great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the
> world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Openh323-devel mailing list
> Openh323-devel@xxxxxxxxxxxxxxxxxxxxx
> https://lists.sourceforge.net/lists/listinfo/openh323-devel
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Openh323-devel mailing list
Openh323-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/openh323-devel
[Open H.323]
[IETF SIP]
[Gnu Gatekeeper]
[Asterisk PBX]
[Fedora Linux]
[Gimp]
[Yosemite News]
[Yosemite Photos]
[Yosemite Campsites]
[ISDN Cause Codes]