03-03-2009
pthreads can switch cpu's. Your model has problems.
In reading I have seen sched_setaffinity() mentioned in the context of pthreads. I have never tried it.
Have you considered pthread_setspecific() to control data access? It kind of sounds like you are doing that, but maybe in a less conventional way.
7 More Discussions You Might Find Interesting
1. Programming
Hi
I am struggling to understand why one should use pselect()/ppoll() instead of wrapping an ordinary select() or poll() call around sigprocmask(). The linux man page talks about “race conditions”, but how would such dangers occur?
I plan to use poll() for an application (since ppoll() isn't... (0 Replies)
Discussion started by: nopcoder
0 Replies
2. Programming
Hello !
Let's supose I have a main function in C , and two POSIX threads. I give you an example down :
int main() {
int something;
char else;
void *FirstThread();
void *SecondThread();
..
<start those two pthreads ..>
return 0;}
void *FirstThread() { ... }
void *SecondThread()... (2 Replies)
Discussion started by: !_30
2 Replies
3. UNIX for Advanced & Expert Users
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. UNIX for Advanced & Expert Users
Hi,
consider the code below:
#include <stdio.h>
.
.
struct myStruct
{
char *message ;
int id;
};
.
.
.
void *thread_function( void *ptr );
nt main()
{
pthread_t thread1, thread2 ,thread3 ;
struct myStruct nico1; (2 Replies)
Discussion started by: Behnaz
2 Replies
5. Programming
Hi,
I am new to posix threads. The no of threads to be created depends on the runtime. If I get the number of threads,
I need to forward declare
pthread_t mythread;
how to do that can I use pointers and use malloc()??
I also have another question. The pthread_join is used to make... (0 Replies)
Discussion started by: brett01
0 Replies
6. UNIX for Advanced & Expert Users
I wonder if someone knows what is the rationale behind linking function calls of the POSIX threads library at link-time vs. run-time.
For example, if I create the following program:
#include <pthread.h>
void noop() {
return;
}
int main() {
pthread_self();
pthread_atfork(noop,... (1 Reply)
Discussion started by: jsimsa
1 Replies
7. Solaris
Question: Which commands to use to shutdown with safety the server; (2 Replies)
Discussion started by: doudou2012
2 Replies
LEARN ABOUT OPENSOLARIS
pthread_getspecific
pthread_getspecific(3C) Standard C Library Functions pthread_getspecific(3C)
NAME
pthread_getspecific, pthread_setspecific - manage thread-specific data
SYNOPSIS
cc -mt [ flag... ] file... -lpthread [ library... ]
#include <pthread.h>
int pthread_setspecific(pthread_key_t key, const void *value);
void *pthread_getspecific(pthread_key_t key);
DESCRIPTION
The pthread_setspecific() function associates a thread-specific value with a key obtained by way of a previous call to pthread_key_cre-
ate(). Different threads may bind different values to the same key. These values are typically pointers to blocks of dynamically allocated
memory that have been reserved for use by the calling thread.
The pthread_getspecific() function returns the value currently bound to the specified key on behalf of the calling thread.
The effect of calling pthread_setspecific() or pthread_getspecific() with a key value not obtained from pthread_key_create() or after key
has been deleted with pthread_key_delete() is undefined.
Both pthread_setspecific() and pthread_getspecific() may be called from a thread-specific data destructor function. However, calling
pthread_setspecific() from a destructor may result in lost storage or infinite loops.
RETURN VALUES
The pthread_getspecific() function returns the thread-specific data value associated with the given key. If no thread-specific data value
is associated with key, then the value NULL is returned.
Upon successful completion, the pthread_setspecific() function returns 0. Otherwise, an error number is returned to indicate the error.
ERRORS
The pthread_setspecific() function will fail if:
ENOMEM Insufficient memory exists to associate the value with the key.
The pthread_setspecific() function may fail if:
EINVAL The key value is invalid.
The pthread_getspecific() function does not return errors.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Interface Stability |Standard |
+-----------------------------+-----------------------------+
|MT-Level |MT-Safe |
+-----------------------------+-----------------------------+
SEE ALSO
pthread_key_create(3C), attributes(5), standards(5)
SunOS 5.11 23 Mar 2005 pthread_getspecific(3C)