Re: RTAI 3.9 lock on rt_sem_wait

Peter Soetens <[email protected]>
Newsgroups gmane.science.robotics.orocos.devel
Message-ID <CAMYDobVjwRts2-On0KfiYB+X=ZUSsAtcEMLmN+zZTZ+Erg+88g@mail.gmail.com>
On Thu, Apr 18, 2013 at 4:01 PM, <[email protected]> wrote:

> Hi Peter,
> thanks for your reply. The only option I can see in the cmake file of RTT
> regarding boost is  ORO_OS_USE_BOOST_THREAD that is set now to off in my
> case. I installed the last version of BOOST (1.53) and when I run the test
> the system hangs on:
> core-test and, precisely, at
> /home/laboratorio/rock/tools/rtt/rtt/os/lxrt/fosi.c line 114
> (rt_sem_wait(m->sem)).
> Any ideas?
>

Well, it's waiting on a semaphore, which isn't that strange. The question
is: why isn't it raised ?

Could you set these cmake options:

cd build; cmake . -DOROBLD_OS_AGNOSTIC=OFF -DOROSEM_OS_LXRT_CHECK=ON

?

Alternatively, apply the patch in attachment... it's a long shot.

Peter

-- 
Orocos-Dev mailing list
[email protected]
http://lists.mech.kuleuven.be/mailman/listinfo/orocos-dev
0001-rtai-change-SEM-typedefs-again-in-agnostic-mode.patch (application/octet-stream, 1.2 KB)
From 747e15472a6636b8d218560db94549cfbe5404c6 Mon Sep 17 00:00:00 2001
From: Peter Soetens <[email protected]>
Date: Wed, 24 Apr 2013 22:41:04 +0200
Subject: [PATCH] rtai: change SEM typedefs again in agnostic mode.

Signed-off-by: Peter Soetens <[email protected]>
---
 rtt/os/lxrt/fosi.h |   13 ++-----------
 1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/rtt/os/lxrt/fosi.h b/rtt/os/lxrt/fosi.h
index a624b2a..e6412f0 100644
--- a/rtt/os/lxrt/fosi.h
+++ b/rtt/os/lxrt/fosi.h
@@ -85,17 +85,8 @@ extern "C" {
     typedef __LXRT_HANDLE_STRUCT RTOS_RTAI_CND;
 #endif // OROBLD_OS_AGNOSTIC // for RTAI header files.
 
-	// this is required because the rtos_sem_init function takes a pointer to RTOS_SEM,
-	// which contains a pointer to the real RTAI sem.
-	typedef struct oro_rtai_sem_t {
-		RTOS_RTAI_SEM* sem;
-	} rt_sem_t;
-
-    // this is required because the rtos_cond_init function takes a pointer to RTOS_COND,
-    // which contains a pointer to the real RTAI cond
-    typedef struct oro_rtai_cond_t {
-        RTOS_RTAI_CND* cond;
-    } rt_cond_t;
+  typedef RTOS_RTAI_SEM rt_sem_t;
+  typedef RTOS_RTAI_CND rt_cond_t;
 
 #define __LXRT_USERSPACE__
 
-- 
1.7.9.5
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.