Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
avoid mutex locks on pj_transform for proj 4.7 and above - closes map…
  • Loading branch information
Dane Springmeyer committed Feb 10, 2012
1 parent c33d534 commit 0748d2b
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 7 deletions.
6 changes: 4 additions & 2 deletions src/proj_transform.cpp
Expand Up @@ -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,
Expand Down Expand Up @@ -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

Expand Down
10 changes: 5 additions & 5 deletions src/projection.cpp
Expand Up @@ -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

Expand Down Expand Up @@ -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;
Expand All @@ -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_)
Expand All @@ -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_);
Expand All @@ -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
Expand Down

0 comments on commit 0748d2b

Please sign in to comment.