On Fri, 19 Aug 2016 16:46:16 -0500 Zev Weiss <z...@bewilderbeest.net> wrote:
> I'm not sure I understand -- the first patch in my series just removes the > global dfa variable and instead passes it as a parameter. This alone doesn't > make the whole thing thread-safe, it's just a first step along the way. With > the whole series applied though I believe everything should be thread-safe > (for example, lexptr is moved into a sub-struct of struct dfa in the second > patch in the series). > > Is there some non-thread-safe code that would remain after applying all six > patches in the series? Hi Zev, Thanks for replying. I say a reverse thing. I believe that there is no problem if only dfaexec() is thread safe. In other words, I think that variables that we must really move to support multipthread are eolbyte, sbit and letters, newline only which depend on eolbyte, and mbrtowc_cache[] and never_trail should be changed as the value does not changed by other thread at running dfaexec() by marking already set, and we can leave other static and global as syntax etc. It will bring us to the saving of memory albeit only slightly. Thanks, Norihiro