aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Warmerdam <warmerdam@pobox.com>2013-06-26 05:28:20 +0000
committerFrank Warmerdam <warmerdam@pobox.com>2013-06-26 05:28:20 +0000
commit977bd9f7719f56b372c4d19315e77d731702d60e (patch)
treef5c679bd7aeca845a659aa9b9e51923838dca899
parent6f6eb0d0d7a606bd2222defb0a37711b7a643701 (diff)
downloadPROJ-977bd9f7719f56b372c4d19315e77d731702d60e.tar.gz
PROJ-977bd9f7719f56b372c4d19315e77d731702d60e.zip
fix race condition on setting default_context_initialized (#199)
git-svn-id: http://svn.osgeo.org/metacrs/proj/trunk@2364 4e78687f-474d-0410-85f9-8d5e500ac6b2
-rw-r--r--ChangeLog3
-rw-r--r--src/pj_ctx.c4
2 files changed, 5 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 3d3849d1..5d8480fd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2013-06-25 Frank Warmerdam <warmerdam@pobox.com>
+ * src/pj_ctx.c: avoid race condition on setting of
+ default_context_initialized. (#199)
+
* config.guess, config.sub: updated to newer versions (#208).
* src/proj.def: add pj_get_spheroid_defn to proj.def. (#214)
diff --git a/src/pj_ctx.c b/src/pj_ctx.c
index d34dac2c..048baf4a 100644
--- a/src/pj_ctx.c
+++ b/src/pj_ctx.c
@@ -33,7 +33,7 @@
PJ_CVSID("$Id$");
static projCtx_t default_context;
-static int default_context_initialized = 0;
+static volatile int default_context_initialized = 0;
/************************************************************************/
/* pj_get_ctx() */
@@ -68,7 +68,6 @@ projCtx pj_get_default_ctx()
if( !default_context_initialized )
{
- default_context_initialized = 1;
default_context.last_errno = 0;
default_context.debug_level = PJ_LOG_NONE;
default_context.logger = pj_stderr_logger;
@@ -82,6 +81,7 @@ projCtx pj_get_default_ctx()
else
default_context.debug_level = PJ_LOG_DEBUG_MINOR;
}
+ default_context_initialized = 1;
}
pj_release_lock();