Re: Thread-unsafe coding in ecpg
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Michael Meskes <meskes@postgresql.org>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2019-01-20T20:04:36Z
Lists: pgsql-hackers
Attachments
- ecpg_locale-2.patch (text/x-diff) patch
I wrote: > On the third hand, the lack of previous reports suggests that maybe > this whole thing is seldom a problem in practice. Maybe we should > just use uselocale() where available and otherwise hope it's OK > to keep on doing what we were doing. If we go with that approach, I think we need to adapt the patch as attached. I autoconfiscated it and fixed a portability problem (it didn't compile on macOS, which has these decls in <xlocale.h>). I've verified that this fixes the problem I was seeing on OpenBSD 6.4. I've not bothered to test on a platform lacking uselocale() --- I think it's clear by inspection that the patch doesn't change anything in that case. Not sure if we need to document this or not. On platforms with uselocale(), it should fix the problem without any need for user attention. On platforms without, there's no change, and given the lack of previous complaints I'm not sure it's really an issue. regards, tom lane
Commits
-
Remove _configthreadlocale() calls in ecpg test suite.
- e3565fd61cee 12.0 landed
-
Remove infinite-loop hazards in ecpg test suite.
- d5a1fde39726 12.0 landed
- fbf5395cb1ea 9.5.16 landed
- 6d6333745b11 9.4.21 landed
- adc2553b7069 9.6.12 landed
- 5b5cb3b0eb31 10.7 landed
- 28868f77b6cb 11.2 landed
-
Blind attempt to fix _configthreadlocale() failures on MinGW.
- 773f594408b9 9.4.21 landed
- 7ac0e71aa623 9.5.16 landed
- 1d334ab6e0b5 9.6.12 landed
- dd815a94ccf5 10.7 landed
- b620cf2d4762 11.2 landed
- 2cf91ccb73ce 12.0 landed
-
Avoid thread-safety problem in ecpglib.
- f305e8457d1e 11.2 landed
- eb3e90cad1e4 9.6.12 landed
- c9ff6cbfc472 9.4.21 landed
- 844d91fd6496 9.5.16 landed
- 6106f9dd71ff 10.7 landed
- 8eb4a9312c95 12.0 landed
-
Second try at fixing ecpglib thread-safety problem.
- ee27584c4a40 12.0 landed