Alexander A. Klimov
df63a78ad9
WIP
2024-12-05 13:21:48 +01:00
Alexander A. Klimov
7097bdb97d
Revert "[Refactor] CpuBoundWork#CpuBoundWork(): require an io_context::strand"
...
This reverts commit 5ca0d7102af59ca309fa9c071d5280de4e096b5c.
2024-12-05 13:21:48 +01:00
Alexander A. Klimov
bb380d33e0
Introduce AsioConditionVariable
2024-12-05 13:21:48 +01:00
Alexander A. Klimov
11f0a1d34a
Rename AsioConditionVariable to AsioEvent
...
The current implementation is rather similar to Python's threading.Event, than to a CV.
2024-12-05 13:21:48 +01:00
Alexander A. Klimov
21a0dcbfcb
Revert "CpuBoundWork#CpuBoundWork(): don't spin on atomic int to acquire slot"
...
This reverts commit 7c4b70f8998b2081bee3610cb03b9b8b5cf04e7d.
2024-12-05 10:38:27 +01:00
Alexander A. Klimov
7c4b70f899
CpuBoundWork#CpuBoundWork(): don't spin on atomic int to acquire slot
...
This is inefficient and involves unfair scheduling. The latter implies
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.
2024-12-05 10:18:48 +01:00
Alexander A. Klimov
5ca0d7102a
[Refactor] CpuBoundWork#CpuBoundWork(): require an io_context::strand
2024-12-05 10:18:46 +01:00
Alexander A. Klimov
52d53ec1ba
CpuBoundWork#~CpuBoundWork(): just call #Done() to deduplicate code
2024-12-05 10:17:16 +01:00
Alexander A. Klimov
2cb282eb9d
Remove unused IoBoundWorkSlot
2024-12-05 10:17:16 +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