Sponsored Content
Top Forums Programming Count Number Of Threads in a Process Post 33261 by S.P.Prasad on Tuesday 24th of December 2002 06:19:34 AM
Old 12-24-2002
In a simple C program like the following :
/* program :- One.c */
main ( )
{
printf ( "Hi To Everyone !\n" ) ;
for ( ; ; ) ;
}
which is compiled with the following command :
cc One.c
and later executed, I found that in the /proc/[pid]/lwp only one subdirectory exists, but when the same program is compiled with following option :
cc One.c -lpthread
and later executed, the lwp directory of its pid in /proc filesystem shows presence of three subdirectories.
Why does it happens so ?
 

10 More Discussions You Might Find Interesting

1. HP-UX

how to see the threads count of a process in hp unix?

hi,all: how to see the threads count of a process in hp unix? thanks (2 Replies)
Discussion started by: bugbugbug
2 Replies

2. Linux

Maximum number of threads handled by a process????

Hi Anybody knows max. no. of threads handled by a process in linux. Please reply Thanks in advnce :confused: (0 Replies)
Discussion started by: Agnello
0 Replies

3. UNIX for Advanced & Expert Users

Threads and Threads Count ?

Hi all, How can I get the list of all Threads and the Total count of threads under a particular process ? Do suggest !! Awaiting for the replies !! Thanks Varun:b: (2 Replies)
Discussion started by: varungupta
2 Replies

4. HP-UX

Need help. Unable to create threads after a certain number

Hi, I have a process which creates pthreads to generate some reports. After creating the reports these threads return null. But after 1024 threads, the process is not able to create any threads further.,and at max 5 threads are existing simultaneously and are returning the control back after... (2 Replies)
Discussion started by: Krsh
2 Replies

5. UNIX for Advanced & Expert Users

threads per process

What are the maximum number of threads possible per Process? Is it OS dependent? (1 Reply)
Discussion started by: digdarshan
1 Replies

6. Solaris

Number of threads running

Is there any command to find 1) the number of threads running 2) kernel boot mode in solaris box (2 Replies)
Discussion started by: vickylife
2 Replies

7. Shell Programming and Scripting

how to add the number of row and count number of rows

Hi experts a have a very large file and I need to add two columns: the first one numbering the incidence of records and the another with the total count The input file: 21 2341 A 21 2341 A 21 2341 A 21 2341 C 21 2341 C 21 2341 C 21 2341 C 21 4567 A 21 4567 A 21 4567 C ... (6 Replies)
Discussion started by: juelillo
6 Replies

8. AIX

How to list all threads in a running process

Hello, On Linux, I can use 'ps -efL | grep process_name' to list all threads that belong to a running process. -L has a different meaning on AIX and I could not find an equivalent flag in the man pages. Does anyone know of a way to dump the threads under a running process? Thanks,... (2 Replies)
Discussion started by: makodarear
2 Replies

9. SuSE

Configuring Number Threads

I have this error message from the logs of Zimbra email running on SUSE 11.2 Is the thread maximum of 20 an operating system parameter, or is it part of the application code, or part of the java run time? Part two, how would I increase that number? (3 Replies)
Discussion started by: jgt
3 Replies

10. HP-UX

How to get number of threads for single java process on HP-UX OS?

Hi All, When i was trying to get total number of threads per java process using this command ps -o NLWP PID, I'm not getting any output. Could someone help me in this issue. Thanks, GMar (1 Reply)
Discussion started by: mgangumolu
1 Replies
pctx_set_events(3CPC)				    CPU Performance Counters Library Functions				     pctx_set_events(3CPC)

NAME
pctx_set_events - associate callbacks with process events SYNOPSIS
cc [ flag... ] file... -lpctx [ library... ] #include <libpctx.h> typedef enum { PCTX_NULL_EVENT = 0, PCTX_SYSC_EXEC_EVENT, PCTX_SYSC_FORK_EVENT, PCTX_SYSC_EXIT_EVENT, PCTX_SYSC_LWP_CREATE_EVENT, PCTX_INIT_LWP_EVENT, PCTX_FINI_LWP_EVENT, PCTX_SYSC_LWP_EXIT_EVENT } pctx_event_t; typedef int pctx_sysc_execfn_t(pctx_t *pctx, pid_t pid, id_t lwpid, char *cmd, void *arg); typedef void pctx_sysc_forkfn_t(pctx_t *pctx, pid_t pid, id_t lwpid, pid_t child, void *arg); typedef void pctx_sysc_exitfn_t(pctx_t *pctx, pid_t pid, id_t lwpid, void *arg); typedef int pctx_sysc_lwp_createfn_t(pctx_t *pctx, pid_t pid, id_t lwpid, void *arg); typedef int pctx_init_lwpfn_t(pctx_t *pctx, pid_t pid, id_t lwpid, void *arg); typedef int pctx_fini_lwpfn_t(pctx_t *pctx, pid_t pid, id_t lwpid, void *arg); typedef int pctx_sysc_lwp_exitfn_t(pctx_t *pctx, pid_t pid, id_t lwpid, void *arg); int pctx_set_events(pctx_t *pctx...); DESCRIPTION
The pctx_set_events() function allows the caller (the controlling process) to express interest in various events in the controlled process. See pctx_capture(3CPC) for information about how the controlling process is able to create, capture and manipulate the controlled process. The pctx_set_events() function takes a pctx_t handle, followed by a variable length list of pairs of pctx_event_t tags and their corre- sponding handlers, terminated by a PCTX_NULL_EVENT tag. Most of the events correspond closely to various classes of system calls, though two additional pseudo-events (init_lwp and fini_lwp) are provided to allow callers to perform various housekeeping tasks. The init_lwp handler is called as soon as the library identifies a new LWP, while fini_lwp is called just before the LWP disappears. Thus the classic "hello world" program would see an init_lwp event, a fini_lwp event and (process) exit event, in that order. The table below displays the interactions between the states of the controlled process and the handlers executed by users of the library. +-------------------------------+--------------+------------------------------------+ |System Calls and pctx Handlers | | | +-------------------------------+--------------+------------------------------------+ | System call | Handler | Comments | +-------------------------------+--------------+------------------------------------+ | exec,execve | fini_lwp |Invoked serially on all lwps in the | | | |process. | | | exec |Only invoked if the exec() system | | | |call succeeded. | | | init_lwp |If the exec succeeds, only invoked | | | |on lwp 1. If the exec fails, | | | |invoked serially on all lwps in the | | | |process. | +-------------------------------+--------------+------------------------------------+ | fork, vfork, fork1 | fork |Only invoked if the fork() system | | | |call succeeded. | +-------------------------------+--------------+------------------------------------+ | exit | fini_lwp |Invoked on all lwps in the process. | | | exit | Invoked on the exiting lwp. | +-------------------------------+--------------+------------------------------------+ Each of the handlers is passed the caller's opaque handle, a pctx_t handle, the pid, and lwpid of the process and lwp generating the event. The lwp_exit, and (process) exit events are delivered before the underlying system calls begin, while the exec, fork, and lwp_create events are only delivered after the relevant system calls complete successfully. The exec handler is passed a string that describes the command being executed. Catching the fork event causes the calling process to fork(2), then capture the child of the controlled process using pctx_capture() before handing control to the fork handler. The process is released on return from the handler. RETURN VALUES
Upon successful completion, pctx_set_events() returns 0. Otherwise, the function returns -1. EXAMPLES
Example 1 HandleExec example. This example captures an existing process whose process identifier is pid, and arranges to call the HandleExec routine when the process performs an exec(2). static void HandleExec(pctx_t *pctx, pid_t pid, id_t lwpid, char *cmd, void *arg) { (void) printf("pid %d execed '%s' ", (int)pid, cmd); } int main() { ... pctx = pctx_capture(pid, NULL, 1, NULL); (void) pctx_set_events(pctx, PCTX_SYSC_EXEC_EVENT, HandleExec, ... PCTX_NULL_EVENT); (void) pctx_run(pctx, 0, 0, NULL); pctx_release(pctx); } ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Evolving | +-----------------------------+-----------------------------+ |MT-Level |Unsafe | +-----------------------------+-----------------------------+ SEE ALSO
exec(2), exit(2), fork(2), vfork(2), fork1(2), cpc(3CPC), libpctx(3LIB), proc(4), attributes(5) SunOS 5.11 13 May 2003 pctx_set_events(3CPC)
All times are GMT -4. The time now is 05:09 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy