add a critical section protecting ms_prev variables (replaces patch 1819224)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49404 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
2064113c9d
commit
a2d3826500
@ -14,6 +14,8 @@
|
||||
|
||||
#include "wx/defs.h"
|
||||
|
||||
#include "wx/thread.h"
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// common constants for use in wxUSE_LOG/!wxUSE_LOG
|
||||
// ----------------------------------------------------------------------------
|
||||
@ -313,6 +315,7 @@ private:
|
||||
// with the number of times it was repeated
|
||||
static bool ms_bRepetCounting;
|
||||
|
||||
wxCRIT_SECT_DECLARE(ms_prevCS); // protects the ms_prev values below
|
||||
static wxString ms_prevString; // previous message that was logged
|
||||
static unsigned ms_prevCounter; // how many times it was repeated
|
||||
static time_t ms_prevTimeStamp;// timestamp of the previous message
|
||||
|
@ -460,6 +460,8 @@ void WXDLLEXPORT wxVLogSysError(unsigned long err, const wxString& format, va_li
|
||||
/* static */
|
||||
void wxLog::LogLastRepetitionCountIfNeeded()
|
||||
{
|
||||
wxCRIT_SECT_LOCKER(lock, ms_prevCS);
|
||||
|
||||
wxLog *pLogger = GetActiveTarget();
|
||||
if ( pLogger && ms_prevCounter )
|
||||
{
|
||||
@ -494,6 +496,8 @@ void wxLog::OnLog(wxLogLevel level, const wxString& szString, time_t t)
|
||||
{
|
||||
if ( GetRepetitionCounting() )
|
||||
{
|
||||
wxCRIT_SECT_LOCKER(lock, ms_prevCS);
|
||||
|
||||
if ( szString == ms_prevString )
|
||||
{
|
||||
ms_prevCounter++;
|
||||
|
Loading…
Reference in New Issue
Block a user