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
Alexey Rybalchenko
b967de4a57
FairMQ: Fix session name modification shm transport.
2017-11-29 11:00:31 +01:00
Alexey Rybalchenko
0dc4000187
FairMQ: Add uuid generator to tools & let tests use it for session names.
2017-11-29 09:06:17 +01:00
Alexey Rybalchenko
eddfd0d1bd
FairMQ: Introduce configurable session name per device.
...
Session name is given to each device via `--session`,
which must be synchronized from a higher level,
e.g. from start script or command & control entity.
2017-11-29 09:06:17 +01:00
Alexey Rybalchenko
58a312b730
FairMQ: Introduce callbacks for the FairMQUnmanagedRegion.
...
Callbacks are called when the data buffer of the message assiciated
with the corresponding region is no longer needed by the transport.
Example in examples/advanced/Region/
2017-11-29 09:06:17 +01:00
Alexey Rybalchenko
0bb866ff36
FairMQ: shared memory unmanaged region updates:
...
- use same mapping for sender/receiver (created/remote) region.
- rename FairMQRegion -> FairMQUnmanagedRegion.
2017-10-20 14:17:15 +02:00
Alexey Rybalchenko
f7d3a5e8ae
FairMQ: fix shm transport placement new alignment issue
2017-10-18 21:15:14 +02:00
Alexey Rybalchenko
f277db2354
FairMQ: shm region & monitor bugfixes
2017-10-17 21:31:12 +02:00
Alexey Rybalchenko
aa8d16ff9a
Move shmem prototype out of MQ examples
2017-10-16 09:49:38 +02:00
Alexey Rybalchenko
2db114bc5c
Eliminate warnings in FairLink and FairMQ Plugins.
2017-10-05 15:32:12 +02:00
Alexey Rybalchenko
bfb9feab03
Update shared memory transport documentation.
2017-09-04 16:33:55 +02:00
Alexey Rybalchenko
221d2567f0
FairMQRegion and examples/advanced/Region
2017-08-08 14:18:10 +02:00
Alexey Rybalchenko
f05ed326a6
Update FairMQShmMonitor
2017-06-04 01:12:30 +02:00
Dennis Klein
8bc21675af
Refactor TransportFactory to RAII
...
* Remove explicit Initialize and Terminate states,
map them onto ctor/dtor
* Remove no longer needed Shutdown state
* Remove deprecated SetTransport()
2017-05-24 16:37:33 +02:00
Alexey Rybalchenko
6b221d950c
Add NewPoller() wrapper.
2017-05-23 08:32:13 +02:00
Dennis Klein
3be2f297f3
generate id if no device id available
...
* CreateSocket factory no longer accepts id param, but the
TransportFactory has an id member instead
2017-05-18 20:01:44 +02:00
Dennis Klein
3205e0c378
refactor to more idiomatic RAII
...
* FairMQTransportFactoryZMQ: move the config invariant
initialization to ctor
* FairMQChannel: add new ctor that creates usable channel
* FairMQSocket*: close sockets in dtor
* FairMQTransportFactory*: terminate context in dtor
* FairMQChannel: add Bind/Connect facades (for explicit control, e.g. timing)
2017-05-18 20:01:44 +02:00
Dennis Klein
2d4282c62d
Fix CID 169527 Uncaught Exception
2017-05-17 18:45:44 +02:00
Alexey Rybalchenko
0926a9a764
FairMQ: allow accumulation of parts on receive.
2017-04-28 13:30:51 +02:00
Alexey Rybalchenko
2a526b8625
shmem: introduce FairMQShmMonitor.
2017-04-28 13:30:51 +02:00
Alexey Rybalchenko
7b4a2ae932
shmem: configurable segment name.
2017-04-28 13:30:51 +02:00
Alexey Rybalchenko
14f9084a80
shmem: Heartbeats for the monitor.
2017-04-28 13:30:51 +02:00
Dennis Klein
a1fe478ce7
fix more -Winconsistent-missing-override warnings
2017-04-20 11:07:50 +02:00
Alexey Rybalchenko
c51575f88c
fix clang++ -Winconsistend-missing-override warnings
2017-04-20 11:07:50 +02:00
Alexey Rybalchenko
7caf0a6aae
Configurable shmem segment size
2017-04-20 11:07:49 +02:00
Alexey Rybalchenko
5aaf27bf02
Refactor the transport interface
...
- give transport Initialize() method with access to device config.
- avoid using global context in the transport.
- simplify shutdown procedure (no need for extra thread).
2017-04-20 11:07:49 +02:00
Dennis Klein
365a68010f
various fixes
...
* fix include paths
* print on stderr
2017-04-20 11:07:47 +02:00
Alexey Rybalchenko
3c73c690f7
Transports: use transportType as static member.
2017-03-14 17:51:26 +01:00
Alexey Rybalchenko
2293c5e417
FairMQChannel: API to access socket metrics; make fSocket private.
2017-03-14 17:51:26 +01:00