msvc-inval: Make handler multithread-safe.
authorBruno Haible <bruno@clisp.org>
Sun, 25 Sep 2011 20:02:18 +0000 (22:02 +0200)
committerBruno Haible <bruno@clisp.org>
Sun, 25 Sep 2011 20:02:18 +0000 (22:02 +0200)
commit37398f7c95b0435a583adc6ee2d35ccdf06411e4
treece1b7310ac962cd75e08adcd80ba35131a0c66e3
parent07edb02c97efe29a68bf5acd6cc3fcb0f7e79582
msvc-inval: Make handler multithread-safe.

* lib/msvc-inval.h (struct gl_msvc_inval_per_thread): New type.
(gl_msvc_inval_restart, gl_msvc_inval_restart_valid): Remove
declarations.
(gl_msvc_inval_current): New declaration.
(TRY_MSVC_INVAL, CATCH_MSVC_INVAL, DONE_MSVC_INVAL) [!_MSC_VER]:
Operate on the structure returned by gl_msvc_inval_current().
* lib/msvc-inval.c (gl_msvc_inval_restart, gl_msvc_inval_restart_valid):
Remove varaiables.
(tls_index, tls_initialized): New variables.
(not_per_thread): New variable.
(gl_msvc_inval_current): New function.
(gl_msvc_invalid_parameter_handler) [!_MSC_VER]: Use the structure
returned by gl_msvc_inval_current().
ChangeLog
lib/msvc-inval.c
lib/msvc-inval.h