Alexander Aleksandrovič Klimov
7ecbb4e924
Merge 81a22ae66f into 274a0e39d5
2026-02-03 15:23:57 +01:00
Alexander A. Klimov
81a22ae66f
Remove unused IoEngine#m_AlreadyExpiredTimer
2026-01-23 16:18:46 +01:00
Alexander A. Klimov
cfee5c927e
Make IoEngine#m_CpuBoundSemaphore unsigned
2026-01-23 16:18:45 +01:00
Alexander A. Klimov
c00980ee16
CpuBoundWork#CpuBoundWork(): don't spin on atomic int to acquire slot
...
This is inefficient and involves possible bad surprises regarding waiting durations on busy nodes. Instead, use AsioConditionVariable#Wait() if there are no free slots. It's notified by others' CpuBoundWork#~CpuBoundWork() once finished.
2026-01-23 16:18:44 +01:00
Alexander A. Klimov
d8d1c87f92
Introduce AsioConditionVariable
2026-01-23 16:18:44 +01:00
Alexander A. Klimov
db942a7c4b
[Refactor] CpuBoundWork#CpuBoundWork(): require an io_context::strand
2026-01-23 16:18:43 +01:00
Alexander A. Klimov
9b3314f36c
CpuBoundWork#~CpuBoundWork(): just call #Done() to deduplicate code
2026-01-23 16:18:43 +01:00
Alexander A. Klimov
53393a80bf
Remove unused IoBoundWorkSlot
2026-01-23 16:18:42 +01:00
Alexander A. Klimov
4ba46f9eb2
Silence compiler warnings about unused parameters
...
Every of these parameters exists for a reason.
The best we can do is to convince the compiler.
2026-01-23 13:31:01 +01:00
Johannes Schmidt
a2e0ce426f
Fix -Wunused-variable warnings
2025-11-19 12:00:58 +01:00
Alexander A. Klimov
060d8b185e
Introduce AsioDualEvent
2025-05-14 12:24:28 +02:00
Alexander A. Klimov
331ba1f661
Rename AsioConditionVariable to AsioEvent
...
The current implementation is rather similar to Python's threading.Event, than to a CV.
2025-04-29 11:39:42 +02:00
Alexander A. Klimov
8f72891228
Document Timeout
2025-01-07 18:20:54 +01:00
Alexander A. Klimov
959b162913
Timeout#~Timeout(), #Cancel(): support boost::asio::io_context running on multiple threads
2025-01-07 18:19:42 +01:00
Alexander A. Klimov
faaeb4eb2e
Timeout: use a plain callback, not an unnecessary coroutine
2025-01-07 18:18:24 +01:00
Julian Brost
2470e930eb
Merge pull request #9643 from Icinga/hardware_concurrency
...
Always use Configuration#Concurrency, not `std:🧵 :hardware_concurrency()`
2023-05-23 19:23:14 +02:00
Alexander A. Klimov
9585a63fa0
Introduce IoEngine::YieldCurrentCoroutine()
2022-03-02 16:39:44 +01:00
Alexander A. Klimov
647f1547a9
Generalize I/O timeout emulation
2020-06-17 10:31:40 +02:00
Alexander A. Klimov
6414ce3742
Always use Configuration#Concurrency, not std: 🧵 :hardware_concurrency()
...
refs #7842
2020-02-18 11:39:17 +01:00
Michael Friedrich
5fa7331cc9
Quality: Replace deprecated Boost IO service code
...
https://github.com/boostorg/asio/issues/110
https://www.boost.org/doc/libs/1_66_0/doc/html/boost_asio/example/cpp03/services/logger_service.hpp
2019-09-09 15:27:57 +02:00
Michael Insel
a6a0631e99
Unify copyright headers
...
Update (left over) copyright headers to generic copyright headers.
2019-05-24 16:25:32 +02:00
Alexander A. Klimov
8b3efe5759
Introduce AsioConditionVariable
2019-04-01 13:31:16 +02:00
Alexander A. Klimov
e26774c7f8
IoEngine: adjust I/O threads
2019-04-01 13:31:16 +02:00
Alexander A. Klimov
282f8fd173
IoEngine: explicitly join I/O threads
2019-04-01 11:40:14 +02:00
Alexander A. Klimov
d7b465ce74
Implement IoBoundWorkSlot
2019-04-01 11:40:14 +02:00
Alexander A. Klimov
2d7714802d
Allow CpuBoundWork to be done before end of scope
2019-04-01 11:40:14 +02:00
Alexander A. Klimov
c547e9a863
Implement basic I/O engine
2019-04-01 11:40:14 +02:00