+ // this function is MT-safe, i.e. it can be called from worker threads
+ // safely without any additional locking
+ void LogThreadMessage(const wxString& text)
+ {
+ wxCriticalSectionLocker lock(m_csMessages);
+ m_messages.push_back(text);
+
+ // as we effectively log the messages from the idle event handler,
+ // ensure it's going to be called now that we have some messages to log
+ wxWakeUpIdle();
+ }