← Back to team overview

kicad-developers team mailing list archive

Re: More wxString multi-threading issues

 

Unfortunately it is quite complicated (probably significantly more
complicated than fixing the string issues) to do an "incomplete" update of
the netlist, since the netlist is globaly interdependent in order to make
things like hierarchy and global labels work.  I have some avenues to
pursue here but I think making global netlisting faster is a much more
promising path in the short and medium term than making partial netlisting
possible.

-Jon

On Wed, Apr 3, 2019 at 11:45 AM Wayne Stambaugh <stambaughw@xxxxxxxxx>
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.
>
> 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
> >
>
> _______________________________________________
> 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
>

References