From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <442C19F2.206@domain.hid> Date: Thu, 30 Mar 2006 12:48:34 -0500 From: Sean McGranaghan MIME-Version: 1.0 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: [Xenomai-help] rt_task_delete() question List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: xenomai@xenomai.org Hello all,

I am posting this for a co-worker who is having problems with killing a real-time task. (He is joining the email list shortly but for now I will pass responses on to him.) Here is the scenario:

1. A Linux process starts up and detaches from the tty (daemon)
2. The daemon creates a xeno message queue
2. The daemon spawns a xeno task
3. The xeno task on startup binds to the queue rt_queue_bind()
4. The xeno task waits on the queue recv with infinite timeout
5. The daemon process goes to sleep in a join, waiting for the task to exit
6. Some time later another program starts
7. The other non-realtime program looks up the xeno task name via rt_task_bind()
8. The other non-realtime program attempts to delete the task via rt_task_delete()
        Failed Attempt #1 - Non-realtime program calls rt_task_delete() and gets
                            a segmentation fault
        Failed Attempt #2 - Non-realtime program spawns a realtime task which
                            binds to original task and tries rt_task_delete().
                            Also gets segmentation fault.

The was attempted one a system running the latest Xenomai 2.1 release.

What is the preferred method to start/join threads from a non-realtime context?

Any help is appreciated.