icinga2/lib
Julian Brost e6300aacf9 InfluxdbCommonWriter: only flush from work queue
There is no explicit synchronization of access to m_DataBuffer which is fine if
it is only accessed from the single-threaded work queue. However, Stop() also
called Flush() in another thread, leading to concurrent write access to
m_DataBuffer which can result in a crash due to use after free/double free.

Changes in this commit:
* Flush() is renamed to FlushWQ() to show that it should only be called from
  the work queue. Additionally, it now asserts that it is running on the work
  queue.
* Visibility of some data members is changed from protected to private. No
  other classes have to access these at the moment. By this change, accidental
  concurrent access from derived classes in the future is prevented.
* Stop() now flushes by posting FlushWQ() to the work queue and joining it.
2022-01-03 12:24:26 +01:00
..
base Dictionary: Make sure underlaying map is ordered 2021-11-12 13:34:57 +01:00
checker
cli Merge pull request #7874 from Icinga/feature/sd_notify-7329 2021-06-28 18:20:15 +02:00
compat Merge pull request #8447 from Icinga/feature/deprecated-relative-removal 2021-06-22 12:05:33 +02:00
config
db_ido
db_ido_mysql
db_ido_pgsql
icinga Set downtime trigger time deterministically 2021-12-08 14:15:50 +01:00
icingadb Merge pull request #9009 from Icinga/bugfix/icingadb-runtime-updates-delete-relationships 2021-11-12 17:52:59 +01:00
livestatus
methods Replace std/boost::bind() function with lambda expression 2021-03-10 16:29:40 +01:00
mysql_shim
notification
perfdata InfluxdbCommonWriter: only flush from work queue 2022-01-03 12:24:26 +01:00
pgsql_shim
remote Adjust incosistent pki log messages (#8965) 2021-11-22 16:06:55 +01:00
CMakeLists.txt