Artem Pavlenko
bd961c4da2
update copyright year [skip ci]
2021-01-05 14:39:07 +00:00
Mathis Logemann
64054fade4
compiler independent warning ignore
...
Signed-off-by: Mathis Logemann <mathisloge@gmail.com>
2020-11-19 17:25:10 +01:00
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
artemp
d3293f73e1
c++ format
2016-07-25 15:55:50 +02:00
artemp
8bc4b28a76
small formatting
2016-04-06 11:36:18 +02:00
artemp
085a2afe40
minor formatting
2016-02-18 17:17:44 +01:00
Dane Springmeyer
7608040906
centralize warning suppression
2015-11-07 17:53:09 -08: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
0a24e8cfca
remove unused #include's
2015-06-16 10:04:50 +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
a8a90b7656
use std::lock_guard instead of unique_lock (better fit for the job)
2015-05-20 16:12:22 +01:00
Dane Springmeyer
2a33ead4cc
finish centralizing boost::filesystem usage to single cpp file - refs #1177
2015-01-06 00:33:33 -08:00
artemp
333965b588
update copyright year
2014-11-20 15:25:50 +01:00
Dane Springmeyer
83588937b9
silence boost warnings
2014-10-21 16:37:27 -07: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
51f62ad083
dodge #2505 by avoiding registering gdal/ogr plugin
2014-10-06 18:19:52 -07:00
Dane Springmeyer
e9e5ec4a6b
quick fix for #2451
2014-09-30 21:29:55 -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
d27b45553a
use emplace/emplace_back over insert/push_back - refs #2336
2014-08-05 15:19:37 -07:00
Dane Springmeyer
cb3a4e10b7
reduce lock-time when creating datasources - #2317
2014-07-28 16:17:31 -07:00
Dane Springmeyer
133f399777
iwyu
2014-07-23 14:16:11 -07:00
Dane Springmeyer
8dcd85a708
iwyu
2014-07-23 14:02:36 -07:00
artemp
fe215a684e
c++11 style : replace (almost) all typedef with type alias's
2014-07-07 18:23:15 +01:00
Dane Springmeyer
8ae1b6da03
fix boost directory iterator to use wide paths - closes #2273
...
Conflicts:
src/font_engine_freetype.cpp
2014-06-21 14:07:57 -07:00
Dane Springmeyer
d58def6cdb
silence debug print
2014-03-08 19:54:43 -08:00
Dane Springmeyer
3d90715883
only return true if plugins are actually newly registered
2014-02-06 18:24:56 -08: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
Vross
43735a65d4
datasource_cache: display correctly the error message
2013-10-21 19:26:40 +02:00
artemp
7adee4ab36
c++11 : remove boost::make_shared includes
2013-10-17 15:09:56 +01:00
artemp
0e40b3c87d
== c++11
...
use std::thread (removes boost.thread dependency)
2013-10-11 13:20:46 +01:00
artemp
b315eb2167
+ use std::shared_ptr and std::make_shared
2013-09-20 14:01:27 +01:00
Dane Springmeyer
3b2bdba7b0
iwyu
2013-06-02 20:19:33 -07:00
Dane Springmeyer
0365d3e081
start centralizing filesystem operations in mapnik::util::fs - refs #1177
2013-06-02 19:28:24 -07:00
Dane Springmeyer
3fbf4df67d
add support for statically linking datasource input plugins - closes #1810 and #1821 - refs #249
2013-05-16 11:55:58 -07: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
55ec6a7942
cleanups around exception handling
2013-03-22 17:58:33 -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
dca04fc9d4
iwyu
2013-01-13 22:02:18 -08:00
Dane Springmeyer
7e2f5caf0a
remove uneeded c_str() call
2013-01-06 11:34:36 -08:00
Dane Springmeyer
c5410fac7e
remove bind option for datasources - refs #962
2012-12-17 10:03:07 -08:00
Dane Springmeyer
c0021d0760
remove unused iostream includes and unnecessary usage of ostringstream - refs #1055
2012-12-06 23:06:12 -08:00
Dane Springmeyer
10f6fbc731
improve error message when datasource plugin is not available
2012-10-30 11:00:24 -07: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
d33496baa7
split up code that handles datasource plugin registration
2012-06-13 19:25:59 -04:00
kunitoki
b60c508c1c
- finish thrashing all the useless ifdef MAPNIK_LOG
2012-04-09 21:41:56 +02:00
kunitoki
1f351e0e09
implement new debug system
2012-04-08 02:20:56 +02:00