01-06-2007
izy100, "kill" means "send a signal to". Signals get complicated real fast in a multi-threaded program. Best practice is for a multi-threaded process to have a dedicated signal acceptor thread (for lack of a better term) that has called sigwait. It then may invoke pthread_kill to signal some particular thread. Remember that if a thread who is not expecting a signal somehow gets one anyway, for the most part, one of two things will happen:
1. the signal will be ignored
2. the thread will behave as if it called exit(), thus destroying the entire process
In either case, it doesn't matter that much which thread was involved.
Threads cease to exist when they return from their main function or call pthread_exit. The thread is said to be cancelled. One thread can call pthread_cancel to try to cancel another thread. But threads may render themselves uncancelable. And processes rarely create superfluous or even expendable threads... in most cases, if one thread dies, the whole process must die with it.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I should know this, but do K scripts in the /etc/rc?.d directories get run in numerically ascending or descending order? By default there are none in rc3.d. Is it OK to put 2 in there, and will they be run first (which is my goal).
Thanks,
Chuck (1 Reply)
Discussion started by: 98_1LE
1 Replies
2. UNIX for Advanced & Expert Users
Hi All,
I am unable to kill a process using kill command. I am using HP-UX system. I have tried with kill -9 and i have root privilages.
How can i terminate this daemon ? ? ?
Regards,
Vijay Hegde (3 Replies)
Discussion started by: VijayHegde
3 Replies
3. Programming
Hi,
I am stuck up with a strange problem.
I am writing an application - a kinda tracker that reads data from memcache and invokes theads to process each record of the memcache.
I dont want to join all my threads because my tracker should poll the cache in regular intervals say sum 300... (2 Replies)
Discussion started by: deepti_v25
2 Replies
4. Shell Programming and Scripting
Sorry, posted the question in other forum. (0 Replies)
Discussion started by: sudhamacs
0 Replies
5. Shell Programming and Scripting
Hi Experts, we do have a shell script for Unix Solaris, which will kill all the process manullay, it used to work in my previous env, but now it is throwing this error.. could some one please help me to resolve it
This is how we execute the script (and this is the requirement) ... (2 Replies)
Discussion started by: jonnyvic
2 Replies
6. Shell Programming and Scripting
Good afternoon
I need to KILL a process in a single command sentence, for example:
kill -9 `ps -aef | grep 'CAL255.4ge' | grep -v grep | awk '{print $2}'`
That sentence Kills the process ID corresponding to the program CAL255.4ge.
However it is possible that the same program... (6 Replies)
Discussion started by: enriquegm82
6 Replies
7. Shell Programming and Scripting
Hello,
In a unix Solaris environment, (for simulation) how to start multiple threads (as Light Weight Process, not background process)?
thanks,
J. (7 Replies)
Discussion started by: seafan
7 Replies
8. UNIX for Advanced & Expert Users
I would like to know is there any we can kill a single thread among multiple threads belongs to process?
Since Signal action is process wise not per thread, i strongly feel that we can not or for that mater from external sources as well single thread can not be killed which is critical section... (2 Replies)
Discussion started by: murali242512
2 Replies
9. Solaris
Hello Guys,
Someone or, some tool has killed the application process with signal 9 (kill -9) . How to track that in Solaris?
On AIX we can use light-weight tool called ProbeVue to track it but not sure how to do it on Solaris. Appreciate your help.
Kelly (3 Replies)
Discussion started by: aixusrsys
3 Replies
10. UNIX for Beginners Questions & Answers
the task is grant user1 to kill another (for example user2) process. My steps:
by root:
usermod -P "Process Management" user1
login user1
user1@server (~) pfexec kill <PID>
the result is:
ksh: <PID>: not found
or user1@server (~) pfexec pkill <PID>
the result: nothing happens, still... (0 Replies)
Discussion started by: dsyberia
0 Replies
LEARN ABOUT SUNOS
thr_kill
thr_kill(3C) thr_kill(3C)
NAME
thr_kill - send a signal to a thread
SYNOPSIS
cc -mt [ flag... ] file... [ library... ]
#include <signal.h>
#include <thread.h>
int thr_kill(thread_t thread, int sig);
The thr_kill() function sends the sig signal to the thread designated by thread. The thread argument must be a member of the same process
as the calling thread. The sig argument must be one of the signals listed in signal.h(3HEAD), with the exception of SIGCANCEL being
reserved and off limits to thr_kill(). If sig is 0, a validity check is done for the existence of the target thread; no signal is sent.
Upon successful completion, thr_kill() returns 0. Otherwise, an error number is returned. In the event of failure, no signal is sent.
The thr_kill() function will fail if:
EINVAL The sig argument value is not zero and is an invalid or an unsupported signal number.
ESRCH No thread was found that corresponded to the thread designated by thread ID.
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|MT-Level |Async-Signal-Safe |
+-----------------------------+-----------------------------+
kill(2), sigaction(2), raise(3C), signal.h(3HEAD), thr_self(3C), attributes(5), standards(5)
23 Mar 2005 thr_kill(3C)