Yonas Habteab
29a5268961
Replace all existing copyright headers with SPDX headers
...
I've used the following command to replace the original copyright header
lines in a C-style comment block:
```
$ find . \( -type d \( -name '\..*' -o -name third-party -o -name scripts -o -name prefix -o -name malloc -o -name server -o -name docker -o -name build -o -name doc \) -prune \) -o -type f -exec perl -pi -e 's{/\*[^*]*\(\s*c\s*\)\s*(\d{4})\s*Icinga\s+GmbH[^*]*\*/}{// SPDX-FileCopyrightText: \1 Icinga GmbH <https://icinga.com >\n// SPDX-License-Identifier: GPL-2.0-or-later}gi' {} +
```
For files that use shell-style comments (#) like CMakeLists.txt, I've
used this command:
```
$ find . \( -type d \( -name '\..*' -o -name third-party -o -name scripts -o -name prefix -o -name malloc -o -name server -o -name docker -o -name build -o -name doc \) -prune \) -o -type f -exec perl -pi -e 's{#.*\(\s*c\s*\)\s(\d{4})\sIcinga\s+GmbH.*}{# SPDX-FileCopyrightText: \1 Icinga GmbH <https://icinga.com >\n# SPDX-License-Identifier: GPL-2.0-or-later}gi' {} +
```
And for SQL files:
```
$ find . \( -type d \( -name '\..*' -o -name third-party -o -name scripts -o -name prefix -o -name malloc -o -name server -o -name docker -o -name build -o -name doc \) -prune \) -o -type f \( -name '*.sql' \) -exec perl -pi -e 's{--.*\(c\)\s(\d{4})\sIcinga\sGmbH.*}{-- SPDX-FileCopyrightText: \1 Icinga GmbH <https://icinga.com >\n-- SPDX-License-Identifier: GPL-2.0-or-later}gi' {} +
$ find . \( -type d \( -name '\..*' -o -name third-party -o -name scripts -o -name prefix -o -name malloc -o -name server -o -name docker -o -name build -o -name doc \) -prune \) -o -type f \( -name '*.sql' \) -exec perl -pi -e 's{-- Copyright \(c\)\s(\d{4})\sIcinga\s+Development\sTeam.*}{-- SPDX-FileCopyrightText: \1 Icinga GmbH <https://icinga.com >\n-- SPDX-License-Identifier: GPL-2.0-or-later}gi' {} +
```
2026-02-03 17:54:50 +01:00
Alexander A. Klimov
c41e5fd05d
Support multiple redundant Timer#Start() calls
...
so that only the first one changes l_AliveTimers (as in Timer#Stop()).
2023-04-04 10:35:22 +02:00
Alexander A. Klimov
298f3b1973
Timer: actually support non-periodic timers
2023-04-04 10:35:22 +02:00
Alexander A. Klimov
3933502739
Timer#Start(): don't unnecessarily unlock/lock l_TimerMutex
...
via new Timer#InternalRescheduleUnlocked()
2023-04-04 10:35:22 +02:00
Alexander A. Klimov
13b9cfda41
Timer::TimerThreadProc(): don't unnecessarily unlock and lock l_TimerMutex
2023-04-04 10:35:22 +02:00
Alexander A. Klimov
1badbab002
Timer::TimerThreadProc(): keep a Timer alive while it's running
...
to prevent the case: Timer callback destroys parent object -> destroys
Timer -> ~Timer() -> Stop(true) -> waits for the Timer callback to finish
-> deadlock.
2023-04-04 10:35:22 +02:00
Alexander A. Klimov
335688909b
Document why Timer::TimerThreadProc() can use Timer members during Timer#~Timer() call
2023-03-29 18:04:19 +02:00
Alexander A. Klimov
c3388e9af6
Use std::mutex, not boost::mutex
2021-02-03 09:54:57 +01:00
Alexander A. Klimov
80d976fed6
Shutdown timers cleanly on exit
...
refs #7327
2019-07-17 13:53:43 +02:00
Alexander A. Klimov
7a8f8fd734
Timer::TimerThreadProc(): use C++11 lambda instead of bind()
...
refs #6737
2019-04-24 11:51:17 +02:00
Elias Ohm
52e3db279a
Fix for double-free (and possibly other memory-corruption related) crashes at logrotate time
...
this is a direct fix of the issue revealing the problem that leads to crash
verification done with a patched icinga2 where the execution-order of the code lines of counter-parts involved in re-incrementing/decrementing Timer:Ptr is forced to be the one that leads to the obeserverd segfaults
refs #6737
2019-04-24 11:42:54 +02:00
Michael Friedrich
d14a88235d
Replace Copyright header with a short version, part I
...
CLion -> replace in path
2019-02-25 14:48:22 +01:00
Michael Friedrich
dab53448bc
icinga.com: Update *.{h,c}pp
2018-10-18 09:27:04 +02:00
Alexander A. Klimov
f71bad96d5
Start and stop the timer thread lazily
...
refs #6461
2018-07-20 15:36:15 +02:00
Michael Friedrich
7519d23892
Add debug logging for daemonize/timers
...
The previous commit is 1:1 the same I've implemented
here already. Great teamwork with Alex :)
refs #6445
2018-07-19 13:34:12 +02:00
Alexander A. Klimov
d15e1006f3
Re-introduce Timer::Initialize()
...
refs #6445
2018-07-19 13:22:37 +02:00
Jan Beich
106be295eb
Explicitly use long with boost::posix_time
...
In file included from lib/base/base_unity.cpp:61:
lib/base/timer.cpp:295:31: error: no matching conversion for functional-style cast from 'double' to 'boost::posix_time::milliseconds' (aka 'subsecond_duration<boost::posix_time::time_duration, 1000>')
l_TimerCV.timed_wait(lock, boost::posix_time::milliseconds(wait * 1000));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from lib/remote/remote_unity.cpp:19:
lib/remote/eventqueue.cpp:111:30: error: no matching conversion for functional-style cast from 'double' to 'boost::posix_time::milliseconds' (aka 'subsecond_duration<boost::posix_time::time_duration, 1000>')
if (!m_CV.timed_wait(lock, boost::posix_time::milliseconds(timeout * 1000)))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from lib/checker/checker_unity.cpp:1:
lib/checker/checkercomponent.cpp:128:26: error: no matching conversion for functional-style cast from 'double' to 'boost::posix_time::milliseconds' (aka 'subsecond_duration<boost::posix_time::time_duration, 1000>')
m_CV.timed_wait(lock, boost::posix_time::milliseconds(wait * 1000));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/date_time/time_duration.hpp:270:30: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'double' to 'const boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000>' for 1st argument
class BOOST_SYMBOL_VISIBLE subsecond_duration : public base_duration
^
/usr/local/include/boost/date_time/time_duration.hpp:270:30: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'double' to 'boost::date_time::subsecond_duration<boost::posix_time::time_duration, 1000>' for 1st argument
/usr/local/include/boost/date_time/time_duration.hpp:286:59: note: candidate template ignored: disabled by 'enable_if' [with T = double]
typename boost::enable_if<boost::is_integral<T>, void>::type* = 0) :
^
2018-04-15 04:06:11 +00:00
Gunnar Beutner
91c256261a
Apply clang-tidy fix 'modernize-use-default-member-init'
2018-01-04 12:24:58 +01:00
Gunnar Beutner
ac155d1dda
Apply clang-tidy fix 'modernize-redundant-void-arg'
2018-01-04 12:24:57 +01:00
Michael Insel
158ae2188e
Change copyright header for 2018
2018-01-02 12:08:55 +01:00
Jean Flach
2636e6a77a
Whitespace fix
...
What does this change?
* Remove use of spaces for formatting
These could be found by using `grep -r -l -P '^\t+ +[^*]'
* Removal of training whitespaces
* A few lines longer than 120 chars
2017-12-20 14:53:52 +01:00
Gunnar Beutner
6739023678
Dynamically create and destroy the timer thread
2017-11-30 17:41:02 +01:00
Gunnar Beutner
245feca0e7
Move the Timer::Holder class to timer.cpp
2017-11-30 17:39:22 +01:00
Gunnar Beutner
7d7eaa8dd3
Replace boost::thread with std::thread
2017-11-30 17:39:20 +01:00
Gunnar Beutner
858873b940
Replace boost::bind/boost::function with std::bind/std::function
2017-11-27 15:15:11 +01:00
Michael Friedrich
b7caf0820d
Ensure that *.icinga.com is used everywhere
...
fixes #13897
fixes #13277
2017-01-10 17:19:12 +01:00
Gunnar Beutner
e8b0797ec4
Use 'auto' keyword for iterator declarations (part 2)
...
refs #12561
2016-08-27 19:56:12 +02:00
Gunnar Beutner
288413f046
Replace BOOST_FOREACH with range-based for loops
...
fixes #12538
2016-08-25 06:46:17 +02:00
Gunnar Beutner
599929b0f6
Update copyright headers for 2016
2016-01-12 08:29:59 +01:00
Gunnar Beutner
e3c75faabc
Implement support for recursive object locks
...
fixes #10596
2015-11-11 10:21:30 +01:00
Gunnar Beutner
2d65489f3a
Make sure the WQ status timer is stopped properly
...
refs #8550
2015-03-01 22:25:48 +01:00
Gunnar Beutner
cd380a8494
Fix another crash in Timer::Call
...
fixes #8550
2015-02-28 08:43:49 +01:00
Gunnar Beutner
5d1e549063
Fix a crash in Timer::Reschedule
...
refs #8554
2015-02-27 16:44:33 +01:00
Gunnar Beutner
d397933eff
Fix a crash in Timer::Call
...
fixes #8473
2015-02-27 14:07:12 +01:00
Michael Friedrich
78bfd0204c
Update copyright year
2015-01-22 12:00:23 +01:00
Gunnar Beutner
1df13c792b
Fix compiler warnings
...
fixes #8175
2015-01-12 12:36:49 +01:00
Michael Friedrich
9f66587d84
Rename static timer variables
2014-12-05 16:32:14 +01:00
Gunnar Beutner
f592a13481
Make sure all threads are dead before calling fork()
...
fixes #7653
2014-11-12 21:27:36 +01:00
Gunnar Beutner
02c559eff9
Fix crash in the unit tests
...
fixes #7648
2014-11-12 09:33:13 +01:00
Gunnar Beutner
478f03b49a
Replace boost::shared_ptr with boost::intrusive_ptr
...
refs #7622
2014-11-09 16:54:41 +01:00
Gunnar Beutner
33cf660c04
Fix missing timer events.
...
Fixes #6349
2014-05-28 13:46:39 +02:00
Gunnar Beutner
632026cd9f
Rename C++ header files.
...
Fixes #6291
2014-05-25 16:27:14 +02:00
Gunnar Beutner
9c3e399188
Remove unnecessary includes.
...
Fixes #6189
2014-05-11 18:11:32 +02:00
Gunnar Beutner
042e4270bf
Fix an issue where expired Timer pointers caused other timers to be delayed.
...
Fixes #6179
2014-05-09 19:26:31 +02:00
Gunnar Beutner
45270f1bb8
Refactor the agent and cluster components.
...
Refs #6107
2014-05-08 09:13:04 +02:00
Gunnar Beutner
e749f6eae5
Make sure the installer doesn't overwrite config files.
...
Refs #4865
2014-04-20 11:22:15 +02:00
Gunnar Beutner
9905a4e09b
Fix crash in Timer::AdjustTimers.
...
Refs #4865
2014-04-20 07:21:38 +02:00
Michael Friedrich
ce737ff2f3
Change copyright header (again).
...
Fixes #5424
2014-03-19 11:42:47 +01:00
Gunnar Beutner
ecce27f9da
Fix null pointer dereference in Timer::AdjustTimers.
...
Fixes #5783
2014-03-17 08:41:53 +01:00
Michael Friedrich
555d72150a
Update copyright header.
...
Fixes #5424
2014-01-09 00:32:11 +01:00