Dennis Klein
ab4bc49088
style: drop redundant member initializers in shmem UnmanagedRegion
...
- fShmemObject() and fFileMapping() default-construct anyway
- clang-tidy readability-redundant-member-init
https://clang.llvm.org/extra/clang-tidy/checks/readability/redundant-member-init.html
2026-06-09 23:00:58 +02:00
Dennis Klein
35d713ebaa
refactor: use default member initializers
...
- move constant constructor initializers into in-class default member
initializers
- clang-tidy modernize-use-default-member-init
https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-default-member-init.html
2026-06-09 23:00:58 +02:00
Dennis Klein
4dfe24d411
style: drop redundant member initializers
...
- remove constructor member initializers that duplicate the default
member initialization
- clang-tidy readability-redundant-member-init
https://clang.llvm.org/extra/clang-tidy/checks/readability/redundant-member-init.html
2026-06-09 23:00:58 +02:00
Dennis Klein
d2aa2f10de
style: drop redundant empty-string initializers
...
- remove `= ""` initialization from strings that default-construct empty
- clang-tidy readability-redundant-string-init
https://clang.llvm.org/extra/clang-tidy/checks/readability/redundant-string-init.html
2026-06-09 23:00:58 +02:00
Dennis Klein
d5e0c29ced
perf: emplace elements instead of inserting temporaries
...
- construct container elements in place instead of inserting a temporary
- clang-tidy modernize-use-emplace
https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-emplace.html
2026-06-09 23:00:58 +02:00
Dennis Klein
0feda158b4
perf: avoid copies in range-based for loops
...
- take loop variables by const reference where the body does not modify
them
- clang-tidy performance-for-range-copy
https://clang.llvm.org/extra/clang-tidy/checks/performance/for-range-copy.html
2026-06-09 23:00:58 +02:00
Dennis Klein
7a44c5e19e
style: add braces around single-statement bodies
...
- wrap single-statement control-flow bodies in braces
- clang-tidy readability-braces-around-statements
https://clang.llvm.org/extra/clang-tidy/checks/readability/braces-around-statements.html
2026-06-09 23:00:58 +02:00
Dennis Klein
e23c4d8ff1
style: use raw string literals for escaped strings
...
- replace string literals containing many escaped characters with raw
string literals
- clang-tidy modernize-raw-string-literal
https://clang.llvm.org/extra/clang-tidy/checks/modernize/raw-string-literal.html
2026-06-09 23:00:58 +02:00
Dennis Klein
8ab00ecddc
refactor: use nullptr for null pointer literals
...
- replace `0` null pointer literals (e.g. `void* hint = 0`) with `nullptr`
- clang-tidy modernize-use-nullptr
https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-nullptr.html
2026-06-09 23:00:58 +02:00
Dennis Klein
fa64faf3f7
fix(boost): add compatibility for Boost.Process v1 API in Boost 1.89+
...
Boost 1.88 replaced Boost.Process with v2, breaking the v1 API.
Boost 1.89 restores v1 compatibility via <boost/process/v1.hpp>.
- Fail configuration if Boost 1.88 is detected
- Define FAIRMQ_BOOST_PROCESS_V1_HEADER for Boost >= 1.89
- Use conditional includes to select v1.hpp or process.hpp
- Add namespace aliases (bp, bp_this) for portable API access
2026-01-05 14:11:19 +01:00
Giulio Eulisse
67dcf77a7f
De-boostify: use std::pmr from C++17
2025-06-13 08:02:06 +02:00
Alexey Rybalchenko
24e7a5b8d0
Make shmem headers public
2025-03-17 15:16:46 +01:00
Giulio Eulisse
c11506e958
feat(EventManager): Out of line some methods
2025-01-23 15:35:26 +01:00
Dennis Klein
e4f258c9ea
fix: Update copyright
2025-01-09 17:09:57 +01:00
Dennis Klein
324a27a2e1
fix(tools): No longer use removed alias io_service
...
Deprecated via d3bbf3756d
and removed via 49fcd03434
in Boost 1.87 or Asio 1.33.
2025-01-09 17:09:57 +01:00
Dennis Klein
c80f97b338
fix(tools): No longer use removed query API
...
Deprecated via 74fe2b8e14
and removed via e916bdfb1a
in Boost 1.87 or Asio 1.33.
2025-01-09 17:09:57 +01:00
Giulio Eulisse
fe2127e12f
Reduce bloat due to statics
...
Avoid disseminating every compile unit including Message.h with TransportNames and
TransportTypes and the associated unordered_map helper methods (e.g.
murmur_hash).
2025-01-07 17:41:30 +01:00
Giulio Eulisse
41165cf16b
Out of line ProgOption::SetProperty for int and std::string
...
The specializations are common enough to show up in O2 compilation profiles
and they are not time critical (once per run at max).
2025-01-07 17:34:22 +01:00
Giulio Eulisse
91b31f0799
Hide actual container from the API
2024-05-23 15:54:24 +02:00
Alexey Rybalchenko
39cb021827
Add 'no control' controller
2024-02-19 22:09:54 +01:00
Alexey Rybalchenko
0e221b28b8
shm: use node_allocator for ref counts
2024-01-25 10:45:34 +01:00
Alexey Rybalchenko
1ee0977df4
shm: use (de)allocate_one() for ref counts
2024-01-25 10:45:34 +01:00
Alexey Rybalchenko
24d578a4ba
shm: extend monitor output for refCount region
2024-01-25 10:45:34 +01:00
Alexey Rybalchenko
2df3d909fa
shm: when refCount segment size is zero, fallback to old behaviour
...
, which is to store reference counts inside the main data segment
2023-11-29 19:21:42 +01:00
Alexey Rybalchenko
58ffdfd1f4
Remove unused ctor and constant
2023-11-29 19:21:42 +01:00
Alexey Rybalchenko
faf577086a
shm: fix initialization of rc segment when region is created externally
2023-11-24 14:19:21 +01:00
Alexey Rybalchenko
ff1f9b94ef
shm: include rcCountSegment free memory in the monitor output
2023-11-24 14:19:21 +01:00
Alexey Rybalchenko
7567a10513
shm: Bump the ref segment size 10x
2023-11-15 12:52:14 +01:00
Alexey Rybalchenko
424e22b41a
shm: Throw RefCountBadAlloc if insufficient space in the ref count segment
2023-11-15 12:52:14 +01:00
Alexey Rybalchenko
fbb6577625
StateMachine: Guard access to subscription containers
2023-11-10 13:13:13 +01:00
Giulio Eulisse
b40db42196
Use std::move rather than just move
...
Apparently:
"warning: unqualified call to 'std::move' [-Wunqualified-std-cast-call]"
is default in new XCode.
2023-10-23 08:00:23 +02:00
Giulio Eulisse
f732b87def
Drop unused variable
...
The else clause at the end makes the postincrement impossible.
2023-10-23 08:00:23 +02:00
Alexey Rybalchenko
f05a09da5a
shm: Message: refactor ctors
2023-10-19 19:16:00 +02:00
Alexey Rybalchenko
5aa6c99442
shm: remove alignment member from Message
2023-10-19 19:16:00 +02:00
Alexey Rybalchenko
3c714fd9e0
Message::SetUsedSize: add optional alignment argument, to avoid storing alignment with the msg object
2023-10-19 19:16:00 +02:00
Alexey Rybalchenko
1b7532a520
Refactor shm::Message to contain sorted members of MetaHeader
...
Move the members of MetaHeader flat into shmem::Message and sort them by
size to reduce the size of the class.
2023-10-19 19:16:00 +02:00
Alexey Rybalchenko
f092b94c96
Update comment
2023-10-04 11:25:47 +02:00
Alexey Rybalchenko
8d28824489
Shm: Use MakeShmName to construct shm object names
2023-09-29 11:18:24 +02:00
Alexey Rybalchenko
7bd31f8ff0
apply readability-else-after-return
2023-09-29 11:18:24 +02:00
Alexey Rybalchenko
1a0ab3a4e2
shm: Ref counting for unmanaged regions in a dedicated segment
2023-09-29 11:18:24 +02:00
Alexey Rybalchenko
cacf69d5f6
Replace boost::variant with std::variant
2023-09-29 11:18:24 +02:00
Alexey Rybalchenko
68038c4693
shm: Move ShmHeader into Common.h
2023-09-29 11:18:24 +02:00
Giulio Eulisse
3c1723fc54
Allow sorting StateChange callbacks
...
If the key of the callback is a number, it will be used to invoke
callbacks with the correct ordering.
2023-09-06 09:49:30 +02:00
Giulio Eulisse
7ceccdeaa6
Print actual address we are trying to bind.
2023-06-29 12:28:23 +02:00
Dennis Klein
bfc665d76e
feat: Make the channel AutoBind default configurable
2023-06-26 11:56:24 +02:00
Dennis Klein
f278e7e312
feat: Add new tunable --shm-metadata-msg-size
...
The shm metadata msg will be right-padded to the given size. This
tunable may be used to saturate the kernel msg buffers more quickly with
the effect that the ZeroMQ message queue size - on which the FairMQ
shmem transport relies upon - behaves more accurately for very small
queue sizes.
This introduces a change for the meta msg format in the multipart case:
old: | MetaHeader 1 | ... | MetaHeader n |
new: | n | MetaHeader 1 | ... | MetaHeader n | padded to fMetadataMsgSize |
where `n` is a `size_t` and contains the number of following meta headers.
Previously, this number was infered from the msg buffer size itself which is
no longer possible due to the potential padding.
Implements #432
2023-06-13 21:24:40 +02:00
Dennis Klein
491a943c63
feat: Use zmq_msg_send for single message Send
2023-06-13 21:24:40 +02:00
Dennis Klein
c47fc6f9fe
feat: Move ZMsg to fair::mq::zmq
...
Implement move semantics.
2023-06-13 21:24:40 +02:00
Giulio Eulisse
7b259afdb5
Fix -Wunqualified-std-cast-call
2023-06-13 21:24:40 +02:00
Dennis Klein
8960ce9416
fix: Use std::chrono consistently
2023-03-06 15:32:48 +01:00