From a5ad7641e31d76e14d55f541caf622a729c58e4b Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Wed, 23 Sep 2015 08:17:16 -1000 Subject: [PATCH 1/2] Updated Submodule NuttX with group delete fix and cstdlib fixes ==master --- NuttX | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NuttX b/NuttX index aa15c32058..3009fb230e 160000 --- a/NuttX +++ b/NuttX @@ -1 +1 @@ -Subproject commit aa15c32058acbda4cc2ee51e97d31e9e49225193 +Subproject commit 3009fb230ec8232c4c4fd7798fd70ea9632692ec From 05a08252ff3f29b5ac684e97531a26a09e1310a9 Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Wed, 23 Sep 2015 06:17:14 -1000 Subject: [PATCH 2/2] Bugfix:pthread_create retuns 0 on success and positive error on error without errono set --- src/modules/uavcan/uavcan_servers.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/modules/uavcan/uavcan_servers.cpp b/src/modules/uavcan/uavcan_servers.cpp index 52f0ce9697..824b5182e2 100644 --- a/src/modules/uavcan/uavcan_servers.cpp +++ b/src/modules/uavcan/uavcan_servers.cpp @@ -98,6 +98,7 @@ UavcanServers::~UavcanServers() if (_mutex_inited) { (void)Lock::deinit(_subnode_mutex); } + _main_node.getDispatcher().removeRxFrameListener(); } @@ -164,9 +165,9 @@ int UavcanServers::start(uavcan::INode &main_node) rv = pthread_create(&_instance->_subnode_thread, &tattr, static_cast(run_trampoline), NULL); - if (rv < 0) { - warnx("pthread_create() failed: %d", errno); - rv = -errno; + if (rv != 0) { + rv = -rv; + warnx("pthread_create() failed: %d", rv); delete _instance; _instance = nullptr; }