Dennis Klein
195644f132
Add some debug output
2019-03-21 18:03:32 +01:00
Dennis Klein
cc8fd73025
Fix recv logic
2019-03-21 18:03:32 +01:00
Dennis Klein
b45e4da2a9
Implement linger for ofi
...
This reduces test runtime significantly for most transports
2019-03-21 18:03:32 +01:00
Dennis Klein
a1b7efa2f4
Unify implementation of multi part and single part message interfaces
2019-03-21 18:03:32 +01:00
Dennis Klein
6ee7e5fbf0
Improve error handling
2019-03-21 18:03:32 +01:00
Alexey Rybalchenko
99ffb732f4
Use process tools for WaitFor test
2019-03-19 18:09:01 +01:00
Alexey Rybalchenko
6809d60fad
Fix mismatch of docs/API, wrong return value
2019-03-19 18:09:01 +01:00
Alexey Rybalchenko
ef4d6a3310
Process tools: add print helper, support signals
2019-03-19 18:09:01 +01:00
Matthias Richter
696257fd4f
Extending FairMQParts by a constructor taking list of FairMQMessagePtr
...
This introduces a little helper to create a FairMQParts object in place from a
variable list of arguments. As a side effect also AddParts is extended to support
more than one FairMQMessagePtr.
2019-03-19 12:48:02 +01:00
Alexey Rybalchenko
cdc1ba084c
Fix broken pipe errors in tools::execute
2019-03-15 15:51:50 +01:00
Alexey Rybalchenko
922f7e9a92
Use Asio to launch processes in fair::mq::tools::execute
2019-03-14 18:15:17 +01:00
Dennis Klein
a8f1a4dfdb
Try to reconnect on refused connection
2019-03-13 18:04:49 +01:00
Dennis Klein
fb42b1e2f0
Adapt to new asiofi release
2019-03-13 18:04:49 +01:00
Alexey Rybalchenko
74881d27e3
Remove obsolete state machine code
2019-03-12 12:10:47 +01:00
Alexey Rybalchenko
dd02c01c36
Extend tests of error cases
...
- test raising SIGINT in every state
- test going to Error state from every state
- add new states (bind/connect) to exception tests
2019-03-12 12:10:47 +01:00
Alexey Rybalchenko
44a9946ea6
Allow creating region with a callback with default transport
2019-03-11 20:20:22 +01:00
Dennis Klein
3bf5f3bf45
Reformat
2019-03-06 14:23:08 +01:00
Dennis Klein
11a3a41a0f
Add missing memory registration case
2019-03-06 14:23:08 +01:00
Dennis Klein
53a5456d8c
Fix lifetime of memory_region
2019-03-06 14:23:08 +01:00
Dennis Klein
2eb09df1f7
Match consistent style
2019-03-06 14:23:08 +01:00
Dennis Klein
1752e116e3
Fix initialization of inproc queues
2019-03-06 14:23:08 +01:00
Dennis Klein
5eae5ccd31
Fix connection logic
2019-03-06 14:23:08 +01:00
Alexey Rybalchenko
7df278818c
Enhance region example with Builder device
2019-03-06 14:23:08 +01:00
Dennis Klein
f85663bfe8
Fix link errors with Boost
2019-03-06 14:23:08 +01:00
Dennis Klein
ad198edd59
Remove asio strand
2019-03-06 14:23:08 +01:00
Dennis Klein
9ffaa55181
Decrease severity of config dump
2019-03-06 14:23:08 +01:00
Dennis Klein
b3005ecbdc
Fix object lifetime bug
2019-03-06 14:23:08 +01:00
Dennis Klein
ee890a7a46
Implement Reset signal
2019-03-06 14:23:08 +01:00
Dennis Klein
241bf08337
Retry ofi connection
2019-03-06 14:23:08 +01:00
Dennis Klein
02e1511667
Fix issues after rebase
2019-03-06 14:23:08 +01:00
Dennis Klein
a08a34acd5
Do not share ofi context across sockets
2019-03-06 14:23:08 +01:00
Dennis Klein
b31ab1cc48
Implement control band with asiofi
2019-03-06 14:23:08 +01:00
Dennis Klein
672e12f45b
Add semaphore
2019-03-06 14:23:08 +01:00
Dennis Klein
8e7cfacd78
Implement parallel ofi::Socket::Receive
2019-03-06 14:23:08 +01:00
Dennis Klein
46e2420547
Implement parallel ofi::Socket::Send
2019-03-06 14:23:08 +01:00
Dennis Klein
da070a407e
Depend on AZMQ
2019-03-06 14:23:08 +01:00
Dennis Klein
60f1f1000f
Fix after rebase
2019-03-06 14:23:08 +01:00
Dennis Klein
b394feca18
Implement ofi Send/Receive
2019-03-06 14:23:08 +01:00
Dennis Klein
91025cbc88
Deactivate control band monitor socket
2019-03-06 14:23:08 +01:00
Dennis Klein
ba4e6f72c9
Implement connection mgmt
2019-03-06 14:23:08 +01:00
Dennis Klein
1c5d7ca46a
Reach compilable state with asiofi again
2019-03-06 14:23:08 +01:00
Dennis Klein
0ff8eaf84d
Fix package dependencies
2019-03-06 14:23:08 +01:00
Dennis Klein
03912e86f8
Drop protobuf dependencies
2019-03-06 14:23:08 +01:00
Dennis Klein
4d7a1c81c6
Depend on asiofi
2019-03-06 14:23:08 +01:00
Alexey Rybalchenko
d9edcad845
Add backwards compatibility for removed ChangeState(int)
2019-02-26 16:13:09 +01:00
Alexey Rybalchenko
7dcd84dd93
Delete old unused code
2019-02-25 12:19:50 +01:00
Alexey Rybalchenko
8375faf835
Add --max-run-time option and fix bug in LogSocketRates
2019-02-25 12:19:50 +01:00
Alexey Rybalchenko
b7125b746e
Update deprecated methods
2019-02-25 12:19:50 +01:00
Alexey Rybalchenko
fc94342db8
Update state machine
...
- Split INITIALIZING state into Init+Bind+Connect
- Remove PAUSE state
- Convert state/transitions to enum classes (CamelCase)
- Transition to a state only once previous handler is complete
- Add CompleteInit transition to notify Initializing state
that config updates are complete
- Deprecate WaitForEndOfState(transition) in favor of
WaitForState(state)/WaitForNextState()
- Update tests/plugins to new APIs
- Deprecate CheckCurrentState() in favor of NewStatePending()
2019-02-25 12:19:50 +01:00
Alexey Rybalchenko
5e71d09e4d
Remove unused file
2019-02-25 12:19:50 +01:00
Alexey Rybalchenko
36f409dc72
Formatting
2019-02-25 12:19:50 +01:00
Dennis Klein
62781389d4
Add pmix::lookup binding and cleanup
2019-02-11 11:12:30 +01:00
Dennis Klein
dfc6b5c4a3
Add pmix::fence() C++ binding
2019-02-11 11:12:30 +01:00
Dennis Klein
2047dbef59
Fix pmix::info copy ctor
2019-02-11 11:12:30 +01:00
Dennis Klein
61a3da8697
Implement pmix::value copy ctor
2019-02-11 11:12:30 +01:00
Dennis Klein
0a98fa4bac
Fix codacy issues
2019-02-11 11:12:30 +01:00
Dennis Klein
2358d7b03a
Implement some PMIx C++ bindings
...
pmix::init()
pmix::finalize()
pmix::publish()
pmix::initialized()
pmix::get_version()
and supporting data structures.
2019-02-11 11:12:30 +01:00
Dennis Klein
0c54aab19d
Load dynamic plugins with RTLD_GLOBAL flag
...
The MPI MCA framework is another DSO-based plugin system which is
loading further plugins within our plugins. It does not work with
RTLD_LOCAL at the moment.
Enabling RTLD_GLOBAL for all dynamic plugins for now. If this leads
to problems, we can refactor and offer this load flag as an option.
2019-02-11 11:12:30 +01:00
Dennis Klein
1191c3cda5
Add PMIx plugin
...
Proof of concept for now.
2019-02-11 11:12:30 +01:00
Dennis Klein
c0771c81d6
Search plugins in system directories and LD_LIBRARY_PATH
...
Fixes #133
2019-02-11 11:12:30 +01:00
Dennis Klein
e2e476ba19
Remove obsolete dependency to boost signals v1
2019-01-29 16:01:12 +01:00
Alexey Rybalchenko
291d00c73f
Fix regression with ignored rateLogging channel argument
2019-01-07 11:28:15 +01:00
mkrzewic
4dc37efc12
Allow implicit conversion factory->resource
...
reduces boilerplate
2018-12-18 18:02:02 +01:00
mkrzewic
0cb8f6166a
Let getMessage deal with SSO
...
containers are not required to allocate, e.g. small string optimization
for now this is hypothetical since we cannot use std::basic_string with
at least gcc 7 since the basic_string there still uses the deprecated
rebind allocator interface (which pmr does not implement)
2018-12-10 15:10:53 +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
ffbe90b638
Update to new DDS 2.2 API
...
- require DDS 2.2
- fix regressions in automatic port binding
- fix regression in channel API
- update DDS example readme
2018-11-28 16:55:34 +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
Alexey Rybalchenko
3ca0d7236a
Add safety checks for process tools
2018-11-06 11:14:01 +01:00
Teo Mrnjavac
227a302903
Avoid boost::uuids::entropy_error on some systems
2018-11-05 13:18:08 +01:00
Alexey Rybalchenko
bd899a2806
Add test for channel validation
2018-11-01 15:43:40 +01:00
Alexey Rybalchenko
0b199e779a
Add test for interface IP detection tools
2018-11-01 15:43:40 +01:00
Dennis Klein
5e4876c947
Allow plugins to create channels
...
This also fixes a bug, that prevented the usage of custom types with the
plugin config API.
2018-10-31 15:42:04 +01:00
Alexey Rybalchenko
3b5b2b501f
Use exceptions for fatal errors in device/channel
...
- These will be caught by StateMachine::ProcessWork
and lead to error state.
- Solve issue where device goes into ready state if
it encounters misconfigured channel in the Run.
- deprecate WaitForInitialValidation().
2018-10-31 15:26:43 +01:00
Alexey Rybalchenko
3561255cf9
Add missing channel update handlers
2018-10-31 15:26:43 +01:00
mkrzewic
cbab7649be
Return unique_ptr by value to allow RVO
2018-10-31 13:12:38 +01:00
mkrzewic
6ac94b7bc7
Fix ctor
2018-10-31 13:12:38 +01:00
mkrzewic
f9658f69a4
Alias boost::container::pmr -> fair::mq::pmr
...
so the eventual switch to std::pmr becomes easier
2018-10-31 13:12:38 +01:00
mkrzewic
34286ef75e
Remove container adoption code
2018-10-31 13:12:38 +01:00
mkrzewic
1a07137dda
Rename adoptVector into getVector
2018-10-31 13:12:38 +01:00
mkrzewic
1f42f49ae5
Update some comments
2018-10-31 13:12:38 +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
mkrzewic
310b9647b5
Adopt FairMQMessage backed memory resource collection from AliceO2
...
Add a pmr interface to FairMQTransportFactory
refactor
Port the unit tests for MemoryResources
clang format
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
c40bd7d6a9
Apply clang-tidy suggestions [performance-faster-string-find]
2018-10-29 13:45:36 +01:00
Alexey Rybalchenko
4951433330
Apply clang-tidy suggestions [modernize-loop-convert]
2018-10-29 13:45:36 +01:00
Alexey Rybalchenko
d4a4ea14d2
Add example/test for built-in devices
2018-10-18 21:33:47 +02: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
00800f16f1
Remove support for nanomsg <= 0.6
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
Dennis Klein
3a1b769937
Support feeding the child process data on stdin
2018-10-10 19:35:18 +02:00
Dennis Klein
9f325451e5
Make sure we reset terminal config also on exception
2018-10-10 19:35:18 +02:00
Dennis Klein
a78d35d90d
Remove obsolete declaration
2018-10-10 19:35:18 +02:00