Skip to content

Commit

Permalink
vSomeIP 2.5.2
Browse files Browse the repository at this point in the history
  • Loading branch information
juergengehring committed Dec 12, 2016
1 parent ce34f85 commit 1a23055
Show file tree
Hide file tree
Showing 19 changed files with 328 additions and 273 deletions.
6 changes: 6 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -260,3 +260,9 @@ v2.5.1
- Made number of internal threads per application configurable.
- Postpone notify_one events sent from subscription handler to ensure correct
message order on receiver side.

v2.5.2
- Fixed deadlock and crashes
- Prevent race of initial attributes
- Allow incomplete application configurations
- Unit test timeouts increased to avoid failures on (slow) build servers
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ project (vsomeip)

set (VSOMEIP_MAJOR_VERSION 2)
set (VSOMEIP_MINOR_VERSION 5)
set (VSOMEIP_PATCH_VERSION 1)
set (VSOMEIP_PATCH_VERSION 2)
set (VSOMEIP_VERSION ${VSOMEIP_MAJOR_VERSION}.${VSOMEIP_MINOR_VERSION}.${VSOMEIP_PATCH_VERSION})
set (PACKAGE_VERSION ${VSOMEIP_VERSION}) # Used in documentatin/doxygen.in
set (CMAKE_VERBOSE_MAKEFILE off)
Expand Down
22 changes: 13 additions & 9 deletions implementation/configuration/src/configuration_impl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -474,16 +474,20 @@ void configuration_impl::load_application_data(
}
if (its_name != "") {
if (applications_.find(its_name) == applications_.end()) {
if (!is_configured_client_id(its_id)) {
applications_[its_name]
= std::make_tuple(its_id, its_max_dispatchers,
its_max_dispatch_time, its_io_thread_count);
client_identifiers_.insert(its_id);
} else {
VSOMEIP_WARNING << "Multiple configurations for application "
<< its_name << ". Ignoring a configuration from "
<< _file_name;
if (its_id > 0) {
if (!is_configured_client_id(its_id)) {
client_identifiers_.insert(its_id);
} else {
VSOMEIP_ERROR << "Multiple applications are configured to use"
<< " client identifier " << std::hex << its_id
<< ". Ignoring the configuration for application "
<< its_name;
its_id = 0;
}
}
applications_[its_name]
= std::make_tuple(its_id, its_max_dispatchers,
its_max_dispatch_time, its_io_thread_count);
} else {
VSOMEIP_WARNING << "Multiple configurations for application "
<< its_name << ". Ignoring a configuration from "
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ void local_client_endpoint_impl::receive_cbk(
if (_error == boost::asio::error::operation_aborted) {
// endpoint was stopped
shutdown_and_close_socket();
return;
} else if (_error == boost::asio::error::connection_reset
|| _error == boost::asio::error::eof
|| _error == boost::asio::error::bad_descriptor) {
Expand Down
1 change: 1 addition & 0 deletions implementation/routing/include/routing_manager_impl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -348,6 +348,7 @@ class routing_manager_impl: public routing_manager_base,
std::map<bool, std::set<uint16_t>> used_client_ports_;
std::mutex used_client_ports_mutex_;

std::mutex version_log_timer_mutex_;
boost::asio::steady_timer version_log_timer_;

bool if_state_running_;
Expand Down
11 changes: 2 additions & 9 deletions implementation/routing/include/routing_manager_proxy.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

#include <map>
#include <mutex>
#include <atomic>

#include <boost/asio/io_service.hpp>
#include <boost/asio/steady_timer.hpp>
Expand Down Expand Up @@ -76,9 +77,6 @@ class routing_manager_proxy: public routing_manager_base {
instance_t _instance, event_t _event,
bool _is_provided);

void notify(service_t _service, instance_t _instance, event_t _event,
std::shared_ptr<payload> _payload, bool _force, bool _flush);

void on_connect(std::shared_ptr<endpoint> _endpoint);
void on_disconnect(std::shared_ptr<endpoint> _endpoint);
void on_message(const byte_t *_data, length_t _length, endpoint *_receiver,
Expand Down Expand Up @@ -165,7 +163,7 @@ class routing_manager_proxy: public routing_manager_base {
};

bool is_connected_;
bool is_started_;
std::atomic<bool> is_started_;
inner_state_type_e state_;

std::shared_ptr<endpoint> sender_; // --> stub
Expand Down Expand Up @@ -212,11 +210,6 @@ class routing_manager_proxy: public routing_manager_base {
std::map<client_t, std::set<eventgroup_data_t>> pending_ingoing_subscripitons_;
std::mutex pending_ingoing_subscripitons_mutex_;

std::map<service_t,
std::map<instance_t,
std::map<event_t,
std::shared_ptr<message> > > > pending_notifications_;

std::mutex deserialize_mutex_;

std::mutex state_mutex_;
Expand Down
4 changes: 4 additions & 0 deletions implementation/routing/include/serviceinfo.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#include <set>
#include <string>
#include <chrono>
#include <mutex>

#include <vsomeip/export.hpp>
#include <vsomeip/primitive_types.hpp>
Expand Down Expand Up @@ -55,11 +56,14 @@ class serviceinfo {

major_version_t major_;
minor_version_t minor_;

mutable std::mutex ttl_mutex_;
std::chrono::milliseconds ttl_;

std::shared_ptr<endpoint> reliable_;
std::shared_ptr<endpoint> unreliable_;

std::mutex requesters_mutex_;
std::set<client_t> requesters_;

bool is_local_;
Expand Down
Loading

0 comments on commit 1a23055

Please sign in to comment.