← Back to team overview

kicad-developers team mailing list archive

Re: More wxString multi-threading issues


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.

On 4/3/2019 9:35 AM, Jeff Young wrote:
> Jon is currently fighting another wxString multi-threading issue.  Having done quite a few of these myself, I feel for him.
> A lot of them were threaded accesses to globals, so it was easy enough to make the globals std::strings.  However, this one is EDA_TEXT’s m_Text field.  That’s going to be a pretty big change to move to std::string.  And it’s nearly impossible to compartmentalise because returning a const& isn’t really const (iterating over the string will modify the linked-list of iterators, which is where the trouble comes in).
> What about moving Kicad to UTF16 internally?  (The linked list of iterators is a performance optimisation specifically for UTF8 builds.)
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp

Follow ups