Hi Tom, I’m pretty sure it's any iterator, not just a non-const one. And they’re used internally for things such as Length() and IsEmpty().
I wonder if you could do the mutex locking inside KiString, though? Or would that kill performance? (You could avoid it on Length() and IsEmpty() by caching the length and re-calculating it when written to.) Cheers, Jeff. > On 3 Apr 2019, at 16:59, Tomasz Wlostowski <[email protected]> wrote: > > On 03/04/2019 17:42, Wayne Stambaugh wrote: >> I would be reluctant to get behind this just because of the possibility >> of epic string breakage on lot's of levels. If there was some way to >> piece meal this transition, it might be more palatable but that may >> prove to be very difficult. >> >> The need to use threads, is less clear. It may be far less problematic >> to start the netlist rebuild during idle time and break out of the >> netlist loop use wxApp::Yield() and mark it as incomplete when a user >> event that requires attention is generated. I know this is somewhat >> less elegant than threads but it does resolve the wxString issue. > > How about deriving some sort of "KiString" class from wxString, but with > disabled (private) non-const iterators and other methods that are non > thread-safe (IIRC it was the non-const iterator). > > class KiString : public wxString { > > private: > iterator begin() {}; > iterator end() {}; > }; > > This should drop an error if the user attempts to use non-thread-safe > features of wxString... > > Cheers, > Tom > > _______________________________________________ > Mailing list: https://launchpad.net/~kicad-developers > Post to : [email protected] > Unsubscribe : https://launchpad.net/~kicad-developers > More help : https://help.launchpad.net/ListHelp _______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp

