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
|
|
|
|