Dennis Klein
ea9aede652
Fallback to <boost/filesystem> on GCC 7
2021-04-08 16:22:47 +02:00
Alexey Rybalchenko
77bf12c8e8
docs patch
2021-04-08 12:38:18 +02:00
Alexey Rybalchenko
f3bc9e05a8
shmmonitor: update docs
2021-04-08 10:11:23 +02:00
Alexey Rybalchenko
5facc441b8
shmmonitor: add --list-all
2021-04-08 10:11:23 +02:00
Alexey Rybalchenko
0976465338
shm: reduce delay between monitor daemon launch & HBs
2021-04-08 10:11:23 +02:00
Alexey Rybalchenko
9144258b89
shmmonitor: daemon output to file if FAIRMQ_SHMMONITOR_VERBOSE is true
2021-04-08 10:11:23 +02:00
Alexey Rybalchenko
be55565617
shmmonitor: use fairlogger
2021-04-08 10:11:23 +02:00
Alexey Rybalchenko
d7e2fbecea
shmmonitor: refactor to separate monitoring from output
2021-04-08 10:11:23 +02:00
Alexey Rybalchenko
72175e5757
shmmonitor: optimize startup to avoid repeated start
2021-04-08 10:11:23 +02:00
Alexey Rybalchenko
effba534f0
shmmonitor: add session name and creator id to the output
2021-04-08 10:11:23 +02:00
Alexey Rybalchenko
efd42075a9
shmmonitor: enable read only access
2021-04-08 10:11:23 +02:00
Alexey Rybalchenko
5228407932
shmmonitor: distinguish daemon from monitor mode (orthogonal)
2021-04-08 10:11:23 +02:00
Alexey Rybalchenko
30e81d58f8
shmmonitor: allow getting shmids based on session/userid
2021-04-08 10:11:23 +02:00
Dennis Klein
4b6cf8b181
Fix aggregate initialization issue before C++20
...
Use value initialization to prevent
error: temporary of type ... has protected destructor
see https://stackoverflow.com/a/56745475
2021-03-26 10:06:10 +01:00
Alexey Rybalchenko
bffe74c5cf
shm: handle shrink failure gracefully
2021-03-23 13:00:35 +01:00
Alexey Rybalchenko
62438bd99e
shm: Improve error message when segment cannot be opened
2021-03-18 09:02:08 +01:00
Alexey Rybalchenko
c8ad684b18
Add --shm-no-cleanup option
...
When true, device will skip the segment cleanup even when it is the last
segment user
2021-03-18 09:02:08 +01:00
Alexey Rybalchenko
1f26883b75
Formatting
2021-03-11 12:14:00 +01:00
Alexey Rybalchenko
edbdc57332
shm: make shmId also available as uint64_t
2021-03-11 12:14:00 +01:00
Alexey Rybalchenko
0fd2fcadc2
shm: Make sure no event notifications are missed
2021-03-11 12:14:00 +01:00
Alexey Rybalchenko
9b48b31a75
shm: Make sure all region events are fired
2021-03-11 12:14:00 +01:00
Alexey Rybalchenko
93dff3c5a7
Fix regression in shmmonitor
2021-02-19 09:54:29 +01:00
Alexey Rybalchenko
2b3e38d9a4
shmmonitor: non-interactive mode checks and quits
2021-02-10 10:36:08 +01:00
Alexey Rybalchenko
c6b13cd3a1
Fix shmem::Message::SetUsedSize(0)
2021-01-25 13:46:40 +01:00
Alexey Rybalchenko
4a09154a91
17-ify namespaces
2021-01-25 13:46:40 +01:00
Alexey Rybalchenko
d9a5e82160
Cleanup tools includes
2021-01-25 13:46:40 +01:00
Alexey Rybalchenko
751c53171c
Replace tools::make_unique with std::make_unique
2021-01-25 13:46:40 +01:00
Alexey Rybalchenko
6815c9c172
zmq: implement alignment
2021-01-13 12:36:32 +01:00
Alexey Rybalchenko
02a3980343
Remove useless parameter from implementation
2021-01-13 12:36:32 +01:00
Alexey Rybalchenko
29f45fa77d
Rename TransferResult to TransferCode
2021-01-13 12:36:32 +01:00
Alexey Rybalchenko
f46d446d52
shm: do mlock/zeroing under shmem lock
2020-12-04 13:27:45 +01:00
Alexey Rybalchenko
db0937f339
shm: ensure local segments are complete for region subscriptions
2020-11-25 13:41:23 +01:00
Alexey Rybalchenko
bb1ce794b6
Let single message methods also return int64_t
2020-11-17 14:04:20 +01:00
Alexey Rybalchenko
6699711e17
FairMQChannel: Refactor, moving short methods to header
2020-10-06 16:17:37 +02:00
Alexey Rybalchenko
d03a504ccd
shmem: fail earlier if given an unsupported socket type
2020-10-06 16:17:37 +02:00
Alexey Rybalchenko
6932f88c84
Adjust transfer methods behaviour when interrupted
...
A transer is attempted even if the transport has been interrupted
(with a timeout). When the timeout is reached, transfer methods will
return TransferResult::interrupted (-3).
2020-09-16 15:43:58 +02:00
Alexey Rybalchenko
fdbf289364
Update monitor & debug tools for multiple segments
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
266843cda5
Shm: initial multiple segments support
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
b126ede45a
Shm: Verbosity switch for Cleanup methods
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
73109fe6d3
Shm: configurable allocation strategy
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
3b2d2a0ac8
Shm: Refactor to localize segment access
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
72a45f78b3
Shm: Add Monitor::GetDebugInfo()
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
b63f31d0e0
Shm: Provide debug infos only in debug mode
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
70a583d08d
Shm: Provide segment/msg debug infos
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
690e8a0370
Retry on EINTR in blocking zmq calls
2020-08-28 18:22:03 +02:00
Alexey Rybalchenko
62ed4e5f80
Avoid unconditional call to now() when allocating message
2020-08-13 14:16:12 +02:00
neskovic@gmail.com
f1d6b18668
Message counter: use relaxed/acquire memory ordering
2020-08-13 11:49:55 +02:00
Alexey Rybalchenko
c0153a6b55
shmMonitor: Adjust output slightly
2020-08-07 14:27:14 +02:00
Alexey Rybalchenko
86a1dd38a2
ShmMonitor: Use FairLogger for timestamp calculation
2020-08-07 14:27:14 +02:00
Alexey Rybalchenko
b0f73017e2
shmmonitor: add output with -v (non-interactive)
2020-08-06 12:24:01 +02:00
Alexey Rybalchenko
b83655d5da
MessageBadAlloc: report amount of available memory
2020-08-06 12:24:01 +02:00
Alexey Rybalchenko
65f9519917
Add error handling for mlock
2020-08-06 12:24:01 +02:00
Alexey Rybalchenko
3eca8e9def
Add test for shm transport options
2020-07-15 13:59:53 +02:00
Alexey Rybalchenko
beb7766fca
Shm: add options to zero and/or mlock the segment
2020-07-15 13:59:53 +02:00
Giulio Eulisse
e8cc104344
Add API to extract ZMQ_EVENTS from socket backend
2020-07-15 12:09:54 +02:00
Alexey Rybalchenko
78b1c188bf
Shm: report correct size when opening segment
2020-06-30 20:58:53 +02:00
Alexey Rybalchenko
88bc1f7a06
Shm: throw if requested message size exceeds total segment size
2020-06-30 20:58:53 +02:00
Alexey Rybalchenko
8125489776
Handle out_of_range when locating RegionInfo
2020-06-29 14:44:49 +02:00
Alexey Rybalchenko
6dd0a44308
Make shmid an 8-digit hex number
2020-06-29 14:44:49 +02:00
Alexey Rybalchenko
aeab9e5407
Socket.h: refactor to reduce duplicate code
2020-06-29 14:44:49 +02:00
Alexey Rybalchenko
539e5602a6
Expose fair::mq::shmem::Monitor::Cleanup() API
2020-06-29 14:44:49 +02:00
Alexey Rybalchenko
f885b4618e
Optimize unmanaged region ReceiveAcks
2020-06-29 14:44:49 +02:00
Alexey Rybalchenko
3364da9541
Add linger setting for unmanaged region
2020-06-29 14:44:49 +02:00
Alexey Rybalchenko
36d4f3c937
Use SHA2 instead of boost::hash to generate shmem id
2020-06-05 18:16:13 +02:00
Giulio Eulisse
dd47b34e06
Add ability to retrieve ZMQ_FD
2020-06-03 19:44:00 +02:00
Alexey Rybalchenko
dabc48c21a
Shm: fix incorrect ptr range check
2020-05-29 23:34:27 +02:00
Alexey Rybalchenko
53a4d17f8b
Alignment part I - Interface and shmem send
2020-05-20 19:34:27 +02:00
Alexey Rybalchenko
0d03c76a75
Shm: throw on bad_alloc, option to disable
2020-05-18 14:32:19 +02:00
Alexey Rybalchenko
b56e32eb11
Replace exit()s with exceptions
2020-05-18 14:32:19 +02:00
Alexey Rybalchenko
4b516de81a
Minor formatting
2020-05-18 14:32:19 +02:00
Alexey Rybalchenko
ccbf0be572
Shmem: refactor, clean includes, make header only
2020-05-18 14:32:19 +02:00
Alexey Rybalchenko
7a67719a3c
Remove useless members
2020-05-18 14:32:19 +02:00
Alexey Rybalchenko
d22023bcb5
Implement bulk callbacks for unmanaged regions
2020-05-18 14:32:19 +02:00
Alexey Rybalchenko
e9318dd234
Add FairMQTransportFactory::GetId()
2020-05-11 12:02:19 +02:00
Alexey Rybalchenko
c8fc5ad33f
Add bool FairMQTransportFactory::SubscribedToRegionEvents()
2020-05-11 12:02:19 +02:00
Alexey Rybalchenko
59e32437a2
shmem region subscriptions: fix race condition
2020-05-11 12:02:19 +02:00
Alexey Rybalchenko
9992811822
Implement region events for zmq
2020-05-11 12:02:19 +02:00
Alexey Rybalchenko
4218c185a4
Shmem: Send acks also for local regions
2020-05-04 10:01:29 +02:00
Alexey Rybalchenko
5a49c5b9b1
Truncate the file used for the region mapping
2020-05-04 10:01:29 +02:00
Alexey Rybalchenko
e1a113aabe
Add region events subscriptions
2020-04-28 14:09:04 +02:00
Alexey Rybalchenko
38eb9d22e4
Shmem: more detailed errors on meta data mismatch
2020-03-24 04:07:58 +01:00
Alexey Rybalchenko
0ae53fd7d9
Throw an error if shmem receives invalid meta data
2020-03-09 14:09:29 +01:00
Alexey Rybalchenko
a545bee3b1
Do not report interruption by system call as error
2020-03-02 13:42:37 +01:00
Alexey Rybalchenko
692ec4e997
Fix CIDs 350447, 321250 (uncaught exception)
2020-01-16 17:17:52 +01:00
Alexey Rybalchenko
b6d9c949ae
Fix CID 350448 (uncaught exception)
2020-01-16 17:17:52 +01:00
Alexey Rybalchenko
b6791856f9
Fix CID 350451 (uncaught exception)
2020-01-16 17:17:52 +01:00
Alexey Rybalchenko
684e711b8b
Shmem: track number of message objects, throw if non-zero at reset
2019-12-20 14:04:58 +01:00
Alexey Rybalchenko
a2cff5b7bb
Shmem: simplify message/socket and refactor to use namespaces
2019-12-20 14:04:58 +01:00
Alexey Rybalchenko
b2e027478e
shmem: properly initialize received multipart messages
2019-12-16 21:17:06 +01:00
Alexey Rybalchenko
2ac8f98178
Shm monitor: fix startup race and enable view-only mode
2019-11-13 16:16:16 +01:00
Alexey Rybalchenko
2c6f436858
Fix shmmonitor daemonization
2019-10-29 20:06:31 +01:00
Alexey Rybalchenko
88dbcbe4fd
Formatting, some refactoring
2019-10-29 20:06:31 +01:00
Alexey Rybalchenko
85a3a254d4
Shmem: Fix handling of empty message parts
2019-10-29 20:06:31 +01:00
Alexey Rybalchenko
c34d1f0946
Cleanup includes
2019-10-29 20:06:31 +01:00
Alexey Rybalchenko
160ee9d064
Add safety check in shmem region location
2019-10-29 20:06:31 +01:00
Dennis Klein
246e99a577
SDK: Fix exception specification
2019-09-04 21:17:35 +02:00
Alexey Rybalchenko
5c943bbedb
Add debug output
2019-07-11 18:58:46 +02:00
Alexey Rybalchenko
cba6d19781
Add config plugin class.
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
0e35f1cb22
Shmem region: support huge pages via path to hugetlbfs mount
2019-07-05 15:58:28 +02:00
Gvozden Neskovic
2ed2177555
Batch Region ack messages
...
Reduce CPU utilization by batching release ack messages on the IPC queue.
2019-05-14 14:56:08 +02:00
Alexey Rybalchenko
7df278818c
Enhance region example with Builder device
2019-03-06 14:23:08 +01:00
Alexey Rybalchenko
36f409dc72
Formatting
2019-02-25 12:19:50 +01:00
Alexey Rybalchenko
ee24144d61
Remove previously deprecated Copy method (since 1yr)
2018-11-28 21:16:29 +01:00
Alexey Rybalchenko
a9619a06d0
Add test for FairMQMessage::Rebuild
2018-11-28 21:16:29 +01:00
Alexey Rybalchenko
c605cbc3f6
Fix bug in shmem CloseMessage
2018-11-28 21:16:29 +01:00
Alexey Rybalchenko
33f5590626
Fix -Wsign-compare warning
2018-11-28 11:49:17 +01:00
mkrzewic
cc0c525e0d
Set pointer to factory also when receiving multi-part
2018-11-27 14:36:35 +01:00
Alexey Rybalchenko
25fcf13985
Move Bind/Connect/Attach to FairMQChannel
2018-11-13 11:08:48 +01:00
mkrzewic
d40bbfe208
Equip FairMQMessage with pointer to factory (at creation)
...
the patch seems big but most of it is just propagating the new notion of
constness of the factory - since it keeps track of created messages with
the internal allocator it no longer is const
2018-10-31 13:12:38 +01:00
Alexey Rybalchenko
0cfa9192d7
Deprecate Send-/ReceiveAsync, use timeout variant instead
2018-10-30 10:39:35 +01:00
Alexey Rybalchenko
4951433330
Apply clang-tidy suggestions [modernize-loop-convert]
2018-10-29 13:45:36 +01:00
Alexey Rybalchenko
ce4062f3a0
Remove GetSocket interface that exposes transport details
2018-10-17 13:28:50 +02:00
Alexey Rybalchenko
f8824335a5
Add setters/getters for socket options
2018-10-17 13:28:50 +02:00
Alexey Rybalchenko
dfa1b68867
Make factory classes final (optimization potential)
2018-10-17 13:28:50 +02:00
Alexey Rybalchenko
44acd4997d
Implement nanomsg linger in our transport
2018-10-17 13:28:50 +02:00
Alexey Rybalchenko
cfb727181f
Remove set/get timeout from general socket interface
2018-10-12 20:29:50 +02:00
Alexey Rybalchenko
e090967645
Shmem: Build shmem names out of session id + user id
2018-10-11 17:06:39 +02:00
Alexey Rybalchenko
e1f555bc05
Fix issues found by Codacy
2018-10-08 17:20:02 +02:00
Alexey Rybalchenko
985150437a
Remove shmem prototype code - unused
2018-10-08 17:20:02 +02:00
Alexey Rybalchenko
b814e40c87
Fix multipart transfer timeout and enable its tests
2018-08-27 18:12:02 +02:00
Dennis Klein
fc0adba26b
Support unity build
2018-08-09 16:15:15 +02:00
Dennis Klein
6f22ccf4c1
Fix -Wsign-compare
2018-08-09 16:15:15 +02:00
Alexey Rybalchenko
21419adb40
Change unregistered options warning to debug
2018-06-16 17:40:05 +02:00
Alexey Rybalchenko
1554c1c273
Change missing options in transport from warning to debug
...
Transport has meaningful defaults if FairMQProgOptions is missing
2018-06-13 18:03:16 +02:00
Alexey Rybalchenko
653e82cab4
Avoid copy (where possible) when switching transports
2018-06-08 13:10:06 +02:00
Alexey Rybalchenko
8b88e67360
Refactor FairMQProgOptions
2018-06-06 16:04:08 +02:00
Dennis Klein
72f5cdef58
Fix various warnings
...
-Wunused-parameter
-Wreorder
-Wsign-compare
-Wunused-private-field
2018-05-24 13:03:06 +02:00
Alexey Rybalchenko
436f79bee5
Control plugin: add ability to switch log levels interactively
2018-05-17 10:30:18 +02:00
Alexey Rybalchenko
e295978b3e
further shorten shm names
2018-05-15 19:18:37 +02:00
Alexey Rybalchenko
7a4fd96b27
Fix namespaces in Transports.h and add conversion map
2018-05-15 19:18:11 +02:00
Alexey Rybalchenko
bf5983d8f6
provide location for general fairmq devices/tools
2018-05-02 16:12:57 +02:00
Alexey Rybalchenko
f68b5425a6
prefix general executables with 'fairmq-'
2018-05-02 16:12:57 +02:00
Dennis Klein
2a606ee8de
FairMQ: Fix issues from rebase
2018-03-26 13:58:20 +02:00
Alexey Rybalchenko
fed7601be4
replace cmd socket with transport specific unblock mechanism
2018-03-26 13:58:20 +02:00
Dennis Klein
3670dd8835
FairMQ: Remove unused Attach method and unused socket flags
2018-03-26 13:58:20 +02:00
Alexey Rybalchenko
95112dac02
add CountProperty() to plugin APIs, throw is GetProperty doesn't find key
2018-03-22 14:10:48 +01:00
Gvozden Neskovic
850ec92b5a
SHM: coalesce multipart messages
...
Transmit meta info of an shm multipart message in a single zmq message.
2018-03-19 10:53:33 +01:00
Alexey Rybalchenko
13678f9f6d
monitor update
2018-02-19 14:03:42 +01:00
Alexey Rybalchenko
4e2a195289
Fix warnings
2018-02-01 09:59:11 +01:00
Alexey Rybalchenko
7e6bd91467
Fix reorder warnings
2018-01-24 14:36:52 +01:00
Alexey Rybalchenko
2c2770204f
Fix missing session name resize if running without FairMQProgOptions
2018-01-24 14:36:52 +01:00
Alexey Rybalchenko
a91c481abf
remove custom timestamp stuff from logger wrapper
2018-01-16 22:53:26 +01:00
Alexey Rybalchenko
a3393e600e
convert log severities use to lowercase and remove use of MQLOG
2018-01-16 22:53:26 +01:00
Alexey Rybalchenko
4e942e489b
Single Logger implementation for FairLogger & FairMQLogger
2018-01-16 22:53:26 +01:00
Alexey Rybalchenko
b59f1b950d
FairMQ: Add hint argument to the region callback, settable per message.
2017-12-18 12:53:58 +01:00
Alexey Rybalchenko
ba78964e29
FairMQ: add FairMQMessage::Copy(const FairMQMessage& msg), deprecate the old one.
2017-12-10 17:37:53 +01:00
Alexey Rybalchenko
ea7ae3ded9
remove Get/SetMessage from interface (internal transport detail)
2017-12-10 17:37:53 +01:00
Alexey Rybalchenko
e5aa85b61d
FairMQ: Add functionality to set used message size
2017-12-10 17:37:53 +01:00
Alexey Rybalchenko
fd19480a2e
FairMQ: Fix missing region acks if receiver doesn't call OnData & clean includes.
2017-11-30 13:56:06 +01:00
Mohammad Al-Turany
b5e32403ea
correct typo in copyright section
2017-11-29 13:11:35 +01:00