07-17-2006
why does my program runs in conflicting mode?
my pragram runs with 3 threads, 2 work threads, one main thread. the 2 work threads run with the same mode and the same code. but now, one of the work thread can't work, and it uses the cpu more than 80%, sometimes uses 100% cpu resource. the another work thread work well.
when I viewed the HP perf agent log, it displays that my program's InterestReason is C, the StopReason is SLEEP or SYSTM, the CPU % is 100.53, the RealTm CPU % is 100.04 ,the other CPU % is nearly 0
RealTm CPU % is 100.04 , that's say, my program use the CPU crueltly, but the the StopReason is SLEEP or SYSTM, it seemed that my program is calling sleep or locked by the mutex, I was puzzled with the conflicting information, can you help me?
9 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
I just updated sendmail to the newest version and got into this trouble. Somehow only can root can use sendmail while the other users will simply get "SMTP went away" when using pine or
"can not chdir(/var/spool/mqueue/): Permission denied
Program mode requires special privileges, e.g., root... (1 Reply)
Discussion started by: Micz
1 Replies
2. Shell Programming and Scripting
Hi guys, I had a question last week where I asked how I check from a website hosted on windows if a process is running on on of our unix servers. Vino and Shell Life kindly replied with a perl script:
if qm') -gt 0 ] ; then
echo "Site is up"
else
echo "Site is down."
# start the... (1 Reply)
Discussion started by: drchris
1 Replies
3. UNIX for Advanced & Expert Users
I have a ksh script that executes a program with a predetermined timeout in minutes. If the program takes longer then the timeout then it still completes with a return code of 0. :confused:
I would like to determine how long the program ran. Then if it takes longer than the timeout I would... (7 Replies)
Discussion started by: 2dumb
7 Replies
4. Programming
i am executing following program
int main()
{ char str;
FILE * fp;
int i=0; ... (4 Replies)
Discussion started by: bhavesh.sapra
4 Replies
5. Shell Programming and Scripting
I have a crontab as below:
PATH=/usr/local/sbin:/bin/:..... etc etc
0 8 * * * /home/user/jobs/poll.sh 2>/dev/null 1>/dev/null
Now the script poll.sh is called at correct time and executes.
This is how poll.sh looks like
#!/bin/bash... (2 Replies)
Discussion started by: chakrapani
2 Replies
6. Homework & Coursework Questions
I need help program in C... :create a program that runs two processes linked oven (1 Reply)
Discussion started by: gizmo16
1 Replies
7. Shell Programming and Scripting
Hi all.
Long time!!
Hope you're doing well..
I've stumbled on a peculiar siutaion here, and would expect help from this forum on a clean resolution.
We are running an rm and find command simultaneously from two different Unix sessions of the same user(let's say USER01) and on the same... (3 Replies)
Discussion started by: kumarjt
3 Replies
8. UNIX for Beginners Questions & Answers
Hey guys, I was wondering. When I enter a command in the terminal -wcl for a word count, where is that program located in the kernel? (7 Replies)
Discussion started by: Circuits
7 Replies
9. Shell Programming and Scripting
This bit of code works fine:
egrep -i '^rmcat' /etc/oratab |\
awk -F\: '{print $1}'|\
while read ORACLE_SID
do
But when I modified it, thus:
egrep -v '^#' /etc/oratab |egrep -v '^$' | egrep -v '^listener' \
awk -F\: '{print $1}'|\
while read ORACLE_SID
do (3 Replies)
Discussion started by: edstevens
3 Replies
LEARN ABOUT OSF1
thread_terminate
thread_terminate(9r) thread_terminate(9r)
NAME
thread_terminate - General: Prepares to stop or stops execution of the specified kernel thread
SYNOPSIS
kern_return_t thread_terminate(
thread_t thread_to_terminate );
ARGUMENTS
Specifies a pointer to the thread structure associated with the kernel thread that you want to terminate. This pointer was returned in a
previous call to the kernel_isrthread or kernel_thread_w_arg routine.
DESCRIPTION
The thread_terminate routine prepares to stop or permanently stops execution of the specified kernel thread. You created and started this
kernel thread in a previous call to the kernel_isrthread or kernel_thread_w_arg routine. These routines return a pointer to the thread
structure associated with the newly created and started kernel thread. Kernel modules use this pointer as a handle to identify the specific
kernel thread that thread_terminate stops executing.
Typically, a kernel thread terminates itself. However, one kernel thread can terminate another kernel thread. A kernel thread that termi-
nates itself must call thread_halt_self immediately after the call to thread_terminate. The reason for this is that thread_terminate only
prepares the self-terminating kernel thread to stop execution. The thread_halt_self routine completes the work needed to stop execution
(by performing the appropriate cleanup work) of the self-terminating kernel thread.
Specifically, the thread_terminate routine works as follows: For terminating other kernel threads
The thread_terminate routine stops execution of the specified kernel thread, frees any resources associated with that kernel thread,
and thus makes the kernel thread unavailable. To make the kernel thread available again, you need to create it by calling ker-
nel_isrthread or kernel_thread_w_arg. A kernel thread terminates itself
The thread_terminate routine prepares to stop execution of the kernel thread that needs to terminate itself. The thread_halt_self
routine completes the work needed to stop execution of the self-terminating kernel thread by performing the appropriate cleanup
work. After you call these routines, the self-terminating kernel thread becomes unavailable until you create it again by calling
kernel_isrthread or kernel_thread_w_arg.
NOTES
You do not need to terminate every kernel thread that you create. You should not terminate a kernel thread that is waiting for some event.
The basic rule is that you should terminate only those kernel threads that you do not need anymore. For example, if a dynamically config-
ured kernel module uses kernel threads, you should terminate them in the CFG_OP_UNCONFIGURE entry point of the loadable module's configure
routine. The kernel threads are no longer needed after the module is unconfigured.
Note that the thread_terminate routine (for kernel threads that terminate other kernel threads) not only permanently stops execution of the
specified kernel thread, but it also frees any resources associated with that kernel thread; thus, this kernel thread can no longer be
used.
RETURN VALUES
Upon successfully terminating the specified kernel thread, thread_terminate returns the constant KERN_SUCCESS. If the thread structure
pointer passed to the thread_to_terminate argument does not identify a valid kernel thread, thread_terminate returns the constant
KERN_INVALID_ARGUMENT. On any other error, thread_terminate returns the constant KERN_FAILURE.
SEE ALSO
Data Structures: thread(9s)
Routines: kernel_isrthread(9r), kernel_thread_w_arg(9r), thread_halt_self(9r)
thread_terminate(9r)