artemp
333ef9fde1
update copyright year
2017-05-05 13:02:01 +02:00
artemp
5745bedbd9
update copyright year to 2016
2016-12-20 17:57:22 +01:00
Matt Amos
3d7b84a598
Fix deadlock in recursive datasource registration.
...
The datasource cache was taking an exclusive lock on the simple
mutex used to protect the singleton's data pointer. This works
okay when everyone always calls it non-recursively, but when the
recursive flag is true then it will always deadlock when called
on any directory with subdirectories.
Additionally, many methods which accessed private data members of
the cache were not protected by any locks.
Since the call pattern of registering datasources is strictly
tree-shaped then it's a good candidate for a recursive mutex. This
has a slightly higher overhead than a simple mutex, so rather than
change the singleton's mutex to be recursive, I've added a new
instance mutex to the datasource cache.
Also, added a very basic test which reproduces the problem and
shows that it's fixed with this patch.
2015-08-23 20:25:35 +01:00
artemp
8c6bf0eef6
update copyright notice
2015-06-16 12:49:16 +02:00
artemp
2eaa90033a
move singleton to util/singleton.hpp
...
move windows UTF conversion routines to util/utf_conv_win.hpp
2015-06-02 11:10:41 +01:00
artemp
9a93b21159
remove unused member variable + make singleton always thread safe
2015-06-02 10:32:30 +01:00
artemp
5361d21beb
move mapnik::noncopyable to mapnik::util::noncopyable where it belongs
2015-01-07 13:11:09 +01:00
artemp
333965b588
update copyright year
2014-11-20 15:25:50 +01:00
Dane Springmeyer
9a78c6dfe1
improve register_datasources + drop filesystem v2 support since v3 is default in boost >= 1.46
2014-10-13 17:43:14 -07:00
Dane Springmeyer
378ab71a51
more -fvisibility=hidden fixes for osx
2014-08-09 14:23:23 -07:00
Dane Springmeyer
578da31702
use extern template to fix osx -flto bug - closes #2339
2014-08-08 14:16:49 -07:00
Dane Springmeyer
aa63d6c9a0
include cleanups where we used to use boost
2014-08-04 14:42:51 -07:00
Dane Springmeyer
8dcd85a708
iwyu
2014-07-23 14:02:36 -07:00
Dane Springmeyer
88613fc2ec
check filesystem before trying to open plugin + only report unique directories searched - closes #2131
...
Conflicts:
src/datasource_cache.cpp
2014-02-06 17:08:38 -08:00
Dane Springmeyer
c480d9d878
break out benchmark suite into individual cpp
2013-11-14 23:11:21 -08:00
artemp
62af2e6765
+ replace <boost/shared_ptr.hpp> with <memory>
2013-09-20 14:13:23 +01:00
artemp
b315eb2167
+ use std::shared_ptr and std::make_shared
2013-09-20 14:01:27 +01:00
Dane Springmeyer
79a216f349
remove ltdl to reduce dependencies and because calling dlopen/LoadLibrary is easy
2013-04-09 19:37:02 -07:00
Dane Springmeyer
f6870a6b70
correct the ltdl forward declare type
2013-03-22 19:47:57 -07:00
Dane Springmeyer
f9514e5d2c
formatting
2013-03-22 17:44:27 -07:00
Dane Springmeyer
3256037eb6
forward declare the lt_dlhandle type to avoid needing header in datasource_cache.hpp
2013-03-22 17:37:56 -07:00
Dane Springmeyer
43244efb7d
Merge branch 'master' of github.com:mapnik/mapnik into no-bind
2012-12-17 13:03:11 -08:00
Dane Springmeyer
c5410fac7e
remove bind option for datasources - refs #962
2012-12-17 10:03:07 -08:00
Dane Springmeyer
bb27156df0
use internal noncopyable class to speed up compile times slightly
2012-12-16 18:19:52 -08:00
artemp
11e6ba0c09
+ make client methods non-static in classes derived from
...
mapnik::singleton<> (TODO: apply to all)
+ ensure client methods are accessed through instance() method
2012-09-07 14:56:30 +01:00
artemp
a513d3f97d
+ code: avoid exposing unsafe static methods in datasource_cache ( #1451 )
...
+ python: remove redundent 'instance' method (mapnik.DatasourceCache)
+ python: reflect plugin_directories method
+ tests: update python usage
TODO: consider using similar approach in FontEngine etc..
TODO: consider returning reference from singleton::instance() to
safeguard from accidental deleting a 'singleton' pointer
2012-09-05 12:53:37 +01:00
Dane Springmeyer
a12b8f1d2f
c++ style
2012-09-03 10:27:48 -07:00
Dane Springmeyer
d33496baa7
split up code that handles datasource plugin registration
2012-06-13 19:25:59 -04:00
Dane Springmeyer
17d13cff67
whitespace fixes - closes #911
2012-02-01 17:53:35 -08:00
Artem Pavlenko
771a8ad72f
use mutex from base class
2011-11-18 09:39:57 +00:00
Dane Springmeyer
3520033b0d
in multithreaded mode lock before creating a datasource - closes #951
2011-11-17 18:47:09 -08:00
kunitoki
eb13c8c6be
- another bunch of coding style fixes in includes
2011-10-23 16:09:47 +02:00
kunitoki
f1fb0c1939
- fix copyright to 2011 (script to do this will follow)
2011-10-23 15:04:25 +02:00
Robert Coup
1dce437120
#622 add optional late-binding of datasources
2010-10-24 06:34:18 +00:00
Dane Springmeyer
4f9d6e135c
output metadata about the searched plugin directories if a plugin cannot be found - closes #568
2010-07-15 21:11:41 +00:00
Artem Pavlenko
246731874b
+ apply 'mapnik-format' to *.cpp *.hpp
2010-06-02 11:03:30 +00:00
Dane Springmeyer
14ef2b36f0
expose list of registered plugins as a 'plugin_names()' method of DatasourceCache similar to the FontEngine.face_names() - closes #246
2009-06-22 06:59:56 +00:00
David
3c97052c5e
- more include order reversion
2007-10-08 18:10:31 +00:00
Artem Pavlenko
992af4747d
1. move include to mapnik/include
...
2. update demos,bibdibgs etc.
2006-10-04 11:22:18 +00:00