To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.rcx.legosOpen lugnet.robotics.rcx.legos in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / RCX / legOS / 2824
2823  |  2825
Subject: 
Re: Semaphore(s) locked when task killed.
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Wed, 4 Sep 2002 20:45:37 GMT
Viewed: 
2145 times
  
Have you considered implementing thread cleanup handlers?  Similar to what
pthread_cleanup_push and pthread_cleanup_pop provide.

"Joseph Woolley" <jwoolley@spamblock.insight.rr.com> wrote in message
news:H1w6v9.8M0@lugnet.com...
I have found that killing a task which is sending data via lnp will cause
lnp to stop functioning.  Turning the brick off then on again will get lnp
working again.  The issue is with the semaphore(s) used in the kernel • tasks.

Currently there is no mechanism to track what semaphores are locked by a
task.  When killall is used to end a task (which is commonly done) the • task
will terminate prior to releasing the semaphores it has locked.

So, the question is, what is a good solution to this problem?

I tried a quick patch for the specific issue I encountered... where
program.c waits for the semaphore to be released before calling killall
(handling the run/stop button).  However, this is a poor solution since • the
task in question may have entered an infinite loop or encountered other • such
problems.

I am working on a patch that tracks the semaphores locked by a task.  kill
and killall can then release the semaphores while killing the task.
However, there may be a better solution.

// Joe





Message has 1 Reply:
  Re: Semaphore(s) locked when task killed.
 
This has been suggested and may very well be the best way to handle manual removal of a runaway task. I plan to investigate this once I get my current updates squared-away. I hope this type of handling can be done in the kernel only. User tasks (...) (22 years ago, 5-Sep-02, to lugnet.robotics.rcx.legos)

Message is in Reply To:
  Semaphore(s) locked when task killed.
 
I have found that killing a task which is sending data via lnp will cause lnp to stop functioning. Turning the brick off then on again will get lnp working again. The issue is with the semaphore(s) used in the kernel tasks. Currently there is no (...) (22 years ago, 4-Sep-02, to lugnet.robotics.rcx.legos)

7 Messages in This Thread:




Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact

This Message and its Replies on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR