avoid mutex locks on pj_transform for proj 4.7 and above - closes #1072

This commit is contained in:
Dane Springmeyer 2012-02-09 17:28:31 -08:00
parent c33d534b80
commit 0748d2beea
2 changed files with 9 additions and 7 deletions

View file

@ -102,7 +102,8 @@ bool proj_transform::forward (double * x, double * y , double * z, int point_cou
}
do {
#if defined(MAPNIK_THREADSAFE) && PJ_VERSION < 480
// https://github.com/mapnik/mapnik/issues/1072
#if defined(MAPNIK_THREADSAFE) && PJ_VERSION < 470
mutex::scoped_lock lock(projection::mutex_);
#endif
if (pj_transform( source_.proj_, dest_.proj_, point_count,
@ -153,7 +154,8 @@ bool proj_transform::backward (double * x, double * y , double * z, int point_co
}
do {
#if defined(MAPNIK_THREADSAFE) && PJ_VERSION < 480
// https://github.com/mapnik/mapnik/issues/1072
#if defined(MAPNIK_THREADSAFE) && PJ_VERSION < 470
mutex::scoped_lock lock(projection::mutex_);
#endif

View file

@ -34,7 +34,7 @@
namespace mapnik {
#if defined(MAPNIK_THREADSAFE) && PJ_VERSION < 480
#if defined(MAPNIK_THREADSAFE) && PJ_VERSION < 470
boost::mutex projection::mutex_;
#endif
@ -84,7 +84,7 @@ std::string const& projection::params() const
void projection::forward(double & x, double &y ) const
{
#if defined(MAPNIK_THREADSAFE) && PJ_VERSION < 480
#if defined(MAPNIK_THREADSAFE) && PJ_VERSION < 470
mutex::scoped_lock lock(mutex_);
#endif
projUV p;
@ -102,7 +102,7 @@ void projection::forward(double & x, double &y ) const
void projection::inverse(double & x,double & y) const
{
#if defined(MAPNIK_THREADSAFE) && PJ_VERSION < 480
#if defined(MAPNIK_THREADSAFE) && PJ_VERSION < 470
mutex::scoped_lock lock(mutex_);
#endif
if (is_geographic_)
@ -120,7 +120,7 @@ void projection::inverse(double & x,double & y) const
projection::~projection()
{
#if defined(MAPNIK_THREADSAFE) && PJ_VERSION < 480
#if defined(MAPNIK_THREADSAFE) && PJ_VERSION < 470
mutex::scoped_lock lock(mutex_);
#endif
if (proj_) pj_free(proj_);
@ -131,7 +131,7 @@ projection::~projection()
void projection::init()
{
#if defined(MAPNIK_THREADSAFE) && PJ_VERSION < 480
#if defined(MAPNIK_THREADSAFE) && PJ_VERSION < 470
mutex::scoped_lock lock(mutex_);
#endif
#if PJ_VERSION >= 480