Sponsored Content
Top Forums Programming Multiple instances of pthread Post 302644375 by clerew on Monday 21st of May 2012 05:54:05 PM
Old 05-21-2012
Multiple instances of pthread

Suppose I declare
pthread_t clear_thread;
and then
pthread_create(&clear_thread, &detach, clear_message, this);
the thread is supposed to go away, perform the service it is intended to procide, and then kill itself.

A little while later, I require this service again, so I say
pthread_create(&clear_thread, &detach, clear_message, this);
Now if, whether by accident or design, the first thread is still running, what is supposed to happen? The man pages seem to be silent on this issue (one would have hoped that creating a new thread on an already running identifier would return an error, but it seems not to be so).

So, are there now two threads running? and if I try to do a pthread_kill on it which thread (or both?) gets killed?

And, for that matter, is there any way to tell whether a thread that I have created is still running? Or do I have to declare a variable to keep track of that myself?

I suspect that the answer is that I have made a programming blunder by allowing this situation to arise, but it is an easy mistake to make, especially if you did not foresee the necessity to demand this service frequently (I got into this mess because my progma ran amok and started demanding service continuously, and eventually I think I got into some deadlock). But if that is the answer, then I suspect it is a bug in the design of the pthread system - or is it a feature?

For the record, I am trying to put messages up on an LCD, and this thread is created to take them down again after 30 seconds, or when the user acknowledges them, or whatever, and there are associated threads for putting the backlight on, and turning it off after a while.
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

multiple instances of syslogd - is it possible?

I would like to start up multiple instances of syslog daemon. I am having a little difficulty. Is this at all possible? I have separate syslog.conf1.... syslog.conf5 files. I have linked the daemon to separate files syslogd1 ... syslogd5 I have arranged the rcd.2 start/stop scripts for... (9 Replies)
Discussion started by: Gary Dunn
9 Replies

2. UNIX for Dummies Questions & Answers

Multiple file instances

I am capturing text based reports with a specific program, which works no problem. However, since I send report warehouse output as they are migrated from the database software, on occasion when two capture process' initiate simultaneously, the capture file locks up. Is there a way to setup (in... (1 Reply)
Discussion started by: gozer13
1 Replies

3. Shell Programming and Scripting

detecting multiple instances

Hi Gurus I have a requirement like this. i use solaris OS.. if there are 2 instances of the same ksh file running in the directory, i need to kill the ksh file that started to run latest. suppose ragha.ksh starts running thru cron in abc/xyz directory now ragha.ksh started running by any... (3 Replies)
Discussion started by: ragha81
3 Replies

4. Shell Programming and Scripting

kill multiple instances of the same program

Hi, I know that the answer to this is very simple, since I saw somebody do it some time back..but I forgot how. The problem is, I have multiple instances of the same program running simultaneously and I want to kill them all in a single command. I know that it can be done using awk '{print... (12 Replies)
Discussion started by: ipzig
12 Replies

5. AIX

multiple instances of same vg on same AIX machine

hi, i am new to AIX and to this forum as well. Can you please help me out with following issue/requirement 1) I have one physical volume (pv1) (a scsi disk). (pv1) on 1st AIX machine. I have a single volume group on it(vg1). 2)I removed it from the 1st AIX machine and exported to the 2nd... (1 Reply)
Discussion started by: navadeep
1 Replies

6. Shell Programming and Scripting

Multiple instances of a job.

Could you please let me know how to create/make a multiple instances of a job/process in ksh(shell scripting). i.e., at present the parent script is calling another child/dependent script for only once. What we want is, the parent script itself has to execute multiple times, and in each one it... (1 Reply)
Discussion started by: Gangegowda
1 Replies

7. Shell Programming and Scripting

Checking for multiple instances of a process

Hi I have a scenario where i need to check multiple instances of a running shell script (abc.sh) . How can I find from inside a running shell script whether any other instance of the same script is running or not? If any other instance of same shell script is running I need to exit from... (4 Replies)
Discussion started by: raghu.amilineni
4 Replies

8. Shell Programming and Scripting

Grep with multiple instances of same pattern

Hi, This is my text file I'm trying to Grep. Apple Location Greenland Rdsds dsds fdfd ddsads http Received Return Immediately Received End My Grep command: grep only--matching 'Location.*Received' e. Because the keyword Received appears twice, the Grep command will stop at the last... (0 Replies)
Discussion started by: spywarebox
0 Replies

9. Shell Programming and Scripting

Grep with multiple instances of same pattern

Hi, This is my text file I'm trying to Grep. Apple Location Greenland Rdsds dsds fdfd ddsads http Received Return Immediately Received End My Grep command: grep only--matching 'Location.*Received' Because the keyword Received appears twice, the Grep command will stop at the last... (3 Replies)
Discussion started by: spywarebox
3 Replies

10. Programming

Control multiple program instances - open multiple files problem

Hello. This shouldn't be an unusual problem, but I cannot find anything about it at google or at other search machine. So, I've made an application using C++ and QtCreator. I 've made a new mime type for application's project files. My system (ubuntu 10.10), when I right click a file and I... (3 Replies)
Discussion started by: hakermania
3 Replies
PTHREAD_ATTR_GET_NP(3)					   BSD Library Functions Manual 				    PTHREAD_ATTR_GET_NP(3)

NAME
pthread_attr_get_np -- get attributes of existing thread LIBRARY
POSIX Threads Library (libpthread, -lpthread) SYNOPSIS
#include <pthread.h> int pthread_attr_get_np(pthread_t thread, pthread_attr_t *attr); int pthread_getattr_np(pthread_t thread, pthread_attr_t *attr); DESCRIPTION
The pthread_attr_get_np() and pthread_getattr_np() functions can be used to retrieve attributes of a running thread. The result is stored to attr. For pthread_attr_get_np() attr should be initialized prior to the call by using pthread_attr_init(3). pthread_getattr_np() does this auto- matically. For both functions attr should be freed when it is not in use anymore with pthread_attr_destroy(3). Most fields of attr are the same ones provided during thread creation time as a parameter to pthread_create(3). The exceptions include: o The detach state -- a joinable thread may have detached itself after the creation. o The guard size, which may vary if the application has allocated its own thread stack. o The stack address and size; pthread_attr_get_np() will always return the thread's real stack address and size, regardless of the values in the original attributes structure. The returned pthread_attr_t structure is supposed to be used in conjunction with the pthread_attr_get*() functions to retrieve individual values from the structure. When the returned attr is no longer needed, it should be destroyed by using pthread_attr_destroy(3). RETURN VALUES
Upon successful completion, pthread_attr_get_np() and pthread_getattr_np() return 0. Otherwise an error number is returned to indicate the error. COMPATIBILITY
The pthread_attr_get_np() and pthread_getattr_np() functions are non-standard extensions. ERRORS
The pthread_attr_get_np() and pthread_getattr_np() functions will fail if: [ENOMEM] Insufficient memory. [ESRCH] Non-existent thread. SEE ALSO
pthread(3), pthread_attr(3) BSD
August 6, 2010 BSD
All times are GMT -4. The time now is 01:05 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy