Piotr Konopka
9389030835
Warn when going to try allocate a shmem message more times
2022-11-18 09:36:52 +01:00
Alexey Rybalchenko
7697f2f4b1
Extend error message if channel(s) was not configured before timeout
2022-11-17 11:03:59 +01:00
Alexey Rybalchenko
87baf9749d
Make invalid channel initialization cancellable through pending state
2022-11-17 11:03:59 +01:00
Alexey Rybalchenko
a8b7ebef09
Add operator<< to fair::mq::Channel
2022-11-17 11:03:59 +01:00
Alexey Rybalchenko
ed364a4857
shm: error on duplicate region IDs
2022-10-05 09:13:37 +02:00
Alexey Rybalchenko
9a25c4d28a
shm: refactor UnamangedRegion: rename fRemote to fController
2022-10-05 09:13:37 +02:00
Alexey Rybalchenko
19e40bd32e
shm: Improve debug output a bit
2022-10-05 09:13:37 +02:00
Dennis Klein
126475e7d2
feat(tools): Add macro to instruct the compiler to always inline
2022-09-14 07:37:52 +02:00
Dennis Klein
6eb973235a
build: Add feature flag FAIRMQ_HAS_STD_PMR
...
Currently Clang (libc++) does not implement <memory_resource>.
2022-09-14 07:37:52 +02:00
Dennis Klein
904037d9be
fix(shm): Handle pre-conditions
2022-09-14 07:37:52 +02:00
Alexey Rybalchenko
de09018198
Shm: fix region init with external regions
2022-09-09 15:11:12 +02:00
Alexey Rybalchenko
46e568c55e
shm: add some debug output
2022-09-09 15:11:12 +02:00
Alexey Rybalchenko
75e68e3e4d
fix(shm): Fix incorrect parameters when mapping regions
2022-09-06 07:57:45 +02:00
Alexey Rybalchenko
4587af2eb4
fix(shm): race/deadlock in region locks
2022-08-19 12:24:35 +02:00
Dennis Klein
b3395ef26e
build: ABI version is defined to be equal to the API version
2022-08-12 01:50:14 +02:00
Dennis Klein
a48344bb03
fix(tidy): Regex
2022-08-12 01:50:14 +02:00
Dennis Klein
9297308f8a
fix(tidy): Only emit diagnostic if source location is valid
2022-08-12 01:50:14 +02:00
Dennis Klein
c3fdc8c08c
fix(zeromq): Leaking monitor socket messages
2022-08-12 01:50:14 +02:00
Dennis Klein
4ae68b63e9
fix: Remove long obsolete hotfix version component
2022-08-12 01:50:14 +02:00
Dennis Klein
640becc436
build: Use kebab-case library names in install tree
2022-08-11 15:30:25 +02:00
Dennis Klein
ca420a0e0d
feat(plugins): Allow kebab-case plugin names, e.g. libfairmq-plugin-pmix
...
Camel+snake-case plugin names are still allowed! e.g. `libFairMQPlugin_pmix`
2022-08-11 15:30:25 +02:00
Dennis Klein
b798b1e098
test: Increase robustness of the test suite for high -j
2022-08-11 15:30:25 +02:00
Dennis Klein
cfc6090405
build!: Create a single library again
...
BREAKING CHANGE: Removes exported targets FairMQ::Tools and
FairMQ::StateMachine. However, it is unlikely those were used
by anyone.
2022-08-11 15:30:25 +02:00
Dennis Klein
12a85c6fb1
fix: Use namespaced typenames/headers
2022-08-11 15:30:25 +02:00
Dennis Klein
0959095a39
feat: Deprecate non-namespaced headers
...
For more details see https://github.com/FairRootGroup/FairMQ/discussions/423
2022-08-11 15:30:25 +02:00
Dennis Klein
9ad9393d44
feat: Deprecate non-namespaced typenames
...
For more details see https://github.com/FairRootGroup/FairMQ/discussions/423
2022-08-11 15:30:25 +02:00
Dennis Klein
cda7282422
feat!: Remove deprecated components sdk, sdk_commands, dds_plugin
...
BREAKING CHANGE: Components have been moved to ODC project, see
https://github.com/FairRootGroup/FairMQ/discussions/392 for details.
2022-08-11 15:30:25 +02:00
Alexey Rybalchenko
226733c653
Reduce severity of the missing channel cfg on command line
...
It is a valid use case to create the config programmatically at a later stage.
2022-06-22 14:04:43 +02:00
Alexey Rybalchenko
b06efc401e
shm: Monitor: Add region/segment presence check function
2022-06-22 13:31:51 +02:00
Alexey Rybalchenko
2500771689
shm: ResetContent(): reset data after recreating the metadata
2022-05-28 14:46:21 +02:00
Alexey Rybalchenko
d2aa3b6bb0
shm: open managament data as read only during cleanup
2022-05-28 14:46:21 +02:00
Alexey Rybalchenko
00df117c7c
Shm::Monitor: add nullptr check for segment info
2022-05-28 14:46:21 +02:00
Dennis Klein
b426bf39d7
fix: Update metadata
2022-03-21 18:22:07 +01:00
Dennis Klein
6780b7452c
fix(control): Honor SIGINT and SIGTERM in more places
...
* Queue next transition for long-running states (fix #421 )
* Add *OrCustom/Push/Locked family of functions to StateQueue to enable
composition with custom signals
2022-03-21 16:28:43 +01:00
Dennis Klein
27277b11b4
fix(Device): Warning about narrowing conversion
2022-03-21 16:28:43 +01:00
Dennis Klein
cb5029f826
fix(Device): Spawn rate logger thread only if needed
2022-03-21 16:28:43 +01:00
Dennis Klein
5d45d89269
feat: Remove --max-run-time option
...
BREAKING CHANGE: was introduced in 1.4.0 release but appears unused
2022-03-21 16:28:43 +01:00
Giulio Eulisse
fa0bf96eb2
Skip error message only for tcp
2022-02-28 19:13:00 +01:00
Alexey Rybalchenko
29827f0426
Shm: bring back thread-safety for fRegions (intra-process)
2022-02-16 23:17:04 +01:00
Alexey Rybalchenko
8efe7adf0e
Shm: fix number of region events
2022-02-16 23:17:04 +01:00
Alexey Rybalchenko
b747a8787c
shm: check region size when opening existing
2022-02-08 09:09:25 +01:00
Alexey Rybalchenko
1a75141fc4
shm: allow monitor::ResetContent to cleanup after a crash
2022-02-02 10:49:00 +01:00
Alexey Rybalchenko
2f82eb4f09
shm: monitor: disable number of msgs in the ack queue output
2022-02-02 10:49:00 +01:00
Alexey Rybalchenko
92a56c26bc
shm: remove UR queues on ResetContent
2022-02-02 10:49:00 +01:00
Alexey Rybalchenko
4f9aeda8ec
shm: Add size to UnmanagedRegion debug output
2022-02-02 10:49:00 +01:00
Giulio Eulisse
ad894c79cf
GUI Controller
...
provide a controller which can be used to control state
transitions from an external GUI.
2022-01-25 18:02:25 +01:00
Alexey Rybalchenko
bfd08bb33f
Don't use to-be-deprecated names
2022-01-24 06:40:24 +01:00
Alexey Rybalchenko
f15f669853
use [[maybe_unused]] for values used in assertions
2022-01-24 06:40:24 +01:00
Alexey Rybalchenko
ddf9bc7272
shm: keep mng segment around when skipping cleanup
2022-01-12 19:54:49 +01:00
Alexey Rybalchenko
f79a0714b4
shm: fix double unlock()
2022-01-12 19:54:49 +01:00
Alexey Rybalchenko
c04958e2a4
shm: reduce contention on region events
2022-01-10 19:42:08 +01:00
Alexey Rybalchenko
692576a5b1
shm: add APIs for implementing keep-alive process
2021-12-16 16:27:07 +01:00
Alexey Rybalchenko
eb4620b1ec
shm: always open_or_create segment
2021-12-16 16:27:07 +01:00
Alexey Rybalchenko
9f9583eb55
shm: hide picosha2 from header
2021-12-16 16:27:07 +01:00
Alexey Rybalchenko
08ba068791
shm: remove unused member
2021-12-16 16:27:07 +01:00
Alexey Rybalchenko
1839f7e8c0
shm: integrate mtx and cv into management segment
2021-12-16 16:27:07 +01:00
Alexey Rybalchenko
80ed45df63
extend region config
2021-12-16 16:27:07 +01:00
Alexey Rybalchenko
eef42d2dea
simplify region cleanup
2021-12-16 16:27:07 +01:00
Alexey Rybalchenko
d630fbb1e4
consolidate UnmanagedRegion options
2021-12-16 16:27:07 +01:00
Giulio Eulisse
acfb495411
Do not print logo, if not requested
2021-12-14 11:26:10 +01:00
Alexey Rybalchenko
953c4a75c8
refactor: deduplicate more zmq/shmem code
2021-12-06 09:45:39 +01:00
Alexey Rybalchenko
f24dee33c2
Add configurable default snd/rcv timeout
2021-12-06 09:45:39 +01:00
Alexey Rybalchenko
856780f88a
fix: install tools/Exceptions.h
2021-11-12 13:20:48 +01:00
Alexey Rybalchenko
dbdf17c661
Avoid accessing Device.fChannels directly, use getters
2021-11-03 20:23:40 +01:00
Alexey Rybalchenko
a3bb5fb4b0
feat: Add Device::GetNumSubChannels(channel)
2021-11-03 20:23:40 +01:00
Alexey Rybalchenko
0eaea3c66f
Do not catch and rethrow exception from state handlers
2021-11-03 20:23:40 +01:00
Alexey Rybalchenko
ebcbe2dde6
feat: Add interactive controller button to print connected peers
2021-10-19 10:22:19 +02:00
Dennis Klein
fda8126a43
feat: Add new GetNumberOfConnectedPeers() API
2021-10-19 10:22:19 +02:00
Dennis Klein
8796ce5b20
feat: Add new assertm macro
...
This allows to add a message to the assertion which can improve
readability of error diagnostics.
2021-10-19 10:22:19 +02:00
Dennis Klein
b8503bfbd5
fix: Deprecate Message::Close because it is really a dtor
2021-10-19 10:22:19 +02:00
Dennis Klein
7329cb4428
refactor: Deduplicate GetConstant()
...
* Deprecate its old name in the Socket classes
2021-10-19 10:22:19 +02:00
Dennis Klein
e84a16da88
fix: warning readability-braces-around-statements
2021-10-19 10:22:19 +02:00
Dennis Klein
1a5d0eddbe
fix: Silence false positive cppcoreguidel-pro-bounds-array-to-pointer-decay
2021-10-19 10:22:19 +02:00
Alexey Rybalchenko
5fe2f53c7b
feat: add tool for noncanonical input
2021-10-08 09:42:28 +02:00
Alexey Rybalchenko
d7fb01908c
fix(shm): fix regression in debug mode data
2021-10-08 09:42:28 +02:00
Alexey Rybalchenko
1449166d44
feat: add options to control allocation attempts
2021-10-08 09:42:28 +02:00
Alexey Rybalchenko
36600dce2c
Apply clang-diagnostic-unused-private-field
2021-09-27 12:04:07 +02:00
Alexey Rybalchenko
153dcfab94
Apply modernize-use-override
2021-09-27 12:04:07 +02:00
Alexey Rybalchenko
ad824b4de1
Define copy/move ctors and assignment ops
...
Delete special member functions where they are not used.
(as part of applying suggestions from cppcoreguidelines-special-member-functions)
These classes don't need to be copyable/movable:
# copy/move not used:
zmq:: TransportFactory, Socket, Message, UnmanagedRegion, Poller, Context
shm:: TransportFactory, Socket, Message, UnmanagedRegion, Poller
ofi:: TransportFactory, Socket, Message, Context
shm:: ZMsg, Region, Monitor, TerminalConfig, Manager
plugins:: Config, Control, TerminalConfig
fairmq::StateQueue, StateMachine, ProgOptions, PluginServices, PluginManager, Plugin, Device, StateSubscription
TestData, BadDevice, TestDevice (test suite heplers)
# used via ptr interface:
fairmq::UnmanagedRegion, TransportFactory, Socket, Poller, Message
These classes need to be movable/copyable:
MyClass (test suite helper), fairmq::Channel, fairmq::Parts
2021-09-27 12:04:07 +02:00
Alexey Rybalchenko
597d88277b
Apply clang-analyzer-optin.performance.Padding
2021-09-27 12:04:07 +02:00
Alexey Rybalchenko
9590b5be40
Apply readability-static-accessed-through-instance
2021-09-27 12:04:07 +02:00
Alexey Rybalchenko
cf9b45cd75
Apply cppcoreguidelines-avoid-non-const-global-variables
2021-09-27 12:04:07 +02:00
Alexey Rybalchenko
1ee9d2d222
Apply misc-unused-alias-decls
2021-09-27 12:04:07 +02:00
Alexey Rybalchenko
310204a89d
Apply performance-faster-string-find
2021-09-27 12:04:07 +02:00
Alexey Rybalchenko
f33c597f34
Apply readability-avoid-const-params-in-decls
2021-09-27 12:04:07 +02:00
Alexey Rybalchenko
efca8e0ad4
fix(pmix): Avoid deprecated value
2021-09-24 13:36:58 +02:00
Alexey Rybalchenko
1ac30b51b1
fix(pmix): compiler warning infinite-recursion
2021-09-24 13:36:58 +02:00
Alexey Rybalchenko
2934016586
fix(pmix): ler warning string-plus-int
2021-09-24 13:36:58 +02:00
Alexey Rybalchenko
e484bf4578
Shm: Fix SetUsedSize()
2021-09-20 13:29:28 +02:00
Dennis Klein
b442483dc3
fix: Deprecate static string helper
2021-09-09 18:01:55 +02:00
Dennis Klein
727a709aff
fix: -Winfinite-recursion
2021-09-09 18:01:55 +02:00
Alexey Rybalchenko
bce380d871
Implement shmem msg zero-copy
2021-09-07 20:53:16 +02:00
Alexey Rybalchenko
815b2f1d76
shm: reimplement alignment
2021-09-07 20:53:16 +02:00
Dennis Klein
4e8f247a0d
fix: First round of using new non-namespaced typenames
2021-09-07 20:53:16 +02:00
Dennis Klein
24fbf94946
build: Use fairmq-tidy on our own codebase when RUN_FAIRMQ_TIDY=ON
2021-09-07 20:53:16 +02:00
Dennis Klein
dff2b4b7d1
feat(tidy): Add new FairMQTidy.cmake module
2021-09-07 20:53:16 +02:00
Dennis Klein
9cbaf7e0fd
feat(tools): Move the error code to the Tools target
2021-09-07 20:53:16 +02:00
Dennis Klein
db727092c5
feat(tidy): Add new fairmq-tidy tool
2021-09-07 20:53:16 +02:00
Dennis Klein
8e6c50e7cc
refactor: Prepare deprecation of non-namespaced types and headers
2021-09-07 20:53:16 +02:00
Alexey Rybalchenko
db0500fb2d
Protect access to options container
2021-07-30 16:07:47 +02:00