pthread_create fails when used with pthread_attr_setinheritsched() on HPUX


 
Thread Tools Search this Thread
Top Forums Programming pthread_create fails when used with pthread_attr_setinheritsched() on HPUX
# 1  
Old 01-12-2007
pthread_create fails when used with pthread_attr_setinheritsched() on HPUX

I am using HPUX on Itanium and I have c program where I am doing something like this
but this pthread_create always fails at runtime
prio = PRI_MAX;
prio_low = PRI_MIN;
.
.
.
.
struct sched_param sched_param={1};
sched_param.sched_priority=prio;
thret = pthread_attr_setschedparam(&serv_attr, &sched_param);

thret = pthread_attr_setinheritsched(&serv_attr,PTHREAD_EXPLICIT_SCHED);

.
.
.
thret = pthread_create(&sthread,&serv_attr,server_main, 0);

but if i remove this line

thret = pthread_attr_setinheritsched(&serv_attr,PTHREAD_EXPLICIT_SCHED);

it works fine, can anyone suggest whats happening here. I have tried the same on AIX and Solaris, it works there.
# 2  
Old 01-12-2007
I have never played with the scheduling calls on any unix, but I will make a guess. Look at the man page for rtsched() and notice the following routines:
sched_get_priority_max()
sched_get_priority_min()
PRI_HPUX_TO_POSIX()
PRI_POSIX_TO_HPUX()
My guess is that some combination of these routines is needed. Priorities on HP-UX are backwards. Or reversed. Or mirror-imaged. Or something like that. Anyway, it looks like a landmine waiting to be stepped on:
Quote:
These translations are necessary because the POSIX.4 standard chose larger numbers to represent stronger priorities and the existing HP-UX behavior, which must be maintained for backward compatibility, uses smaller numbers for stronger priorities.
It has never been clear to me which routines use which style of priority. I just take the OS defaults on priority so I don't really care. If you get this working, please let us know the secret.
# 3  
Old 01-17-2007
NAME
rtsched - execute process with real-time priority

SYNOPSIS
rtsched -s scheduler -p priority command [arguments]

rtsched [ -s scheduler ] -p priority -P pid

DESCRIPTION
Rtsched executes command with POSIX or HP-UX real-time priority, or
changes the real-time priority of currently executing process pid.
----------------------------------------------------------------------------

this is what I found when I checked the man page of the rtsched. This basically tells about the process scheduling on HP-UX.
And my program illustrated above only playing with the standard pthreads.
Can you put more focus on this.
I did not get what you wanted to suggest.
Please respond and correct me if I am wrong here.
# 4  
Old 01-17-2007
Your man page must be truncated somehow. Mine has a lot more than you quote. This includes descriptions of the functions I mentioned and that quote I have above came from the man page as well. Try this copy rtsched(2).
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

fork vs pthread_create

Suppose I have a simple program main() with a global varibale int x=0. int x = 0; main() { print("%d\n",x); } I want to create two threads/process which must access this variable x in sync. Which one will be better threads( pthread_create ) or process( fork )? If I go with fork() then... (1 Reply)
Discussion started by: rupeshkp728
1 Replies

2. HP-UX

pwage-hpux-T for Trusted HPUX servers

I'm sharing this in case anybody needs it. Modified from the original solaris pwage script. This modified hpux script will check /etc/password file on hpux trusted systems search /tcb and grep the required u_succhg field. Calculate days to expiry and notify users via email. original solaris... (2 Replies)
Discussion started by: sparcguy
2 Replies

3. UNIX for Dummies Questions & Answers

Pthread_create problem

Hi, I'm trying to do my homework assignment but I am having trouble using the pthread_create fucntion. Here is my code________________ //Alicia Johnson //sum_pid program //creates n number of threads. These threads create a random number //then adds the number to a global array. Then... (1 Reply)
Discussion started by: ajohns38
1 Replies

4. Programming

pthread_create

The prototype for pthread_create function is like this:- int pthread_create(pthread_t *thread,pthread_attr_t *attr,void *(*start routine),void *arg); Q.1 .Why the return type of the start_routine must be void*?? Q.2. Why should we pass arg by converting into void * only ?? Thank You (3 Replies)
Discussion started by: sunil_abhay
3 Replies

5. Programming

How Can I use pthread_create ?

Hi. I use C++ and I wishes to create a thread with the pthread_create function, my question is, how can I do this if I wish that the function will be a member of the class ?? I know from windows programming that I can declare a static function like this static unsigned int __stdcall... (7 Replies)
Discussion started by: shvalb
7 Replies

6. Shell Programming and Scripting

Need Script to Use CPUs on a HPUX server to simulate Workload Manager on HPUX.

I am running HPUX and using WLM (workload manager). I want to write a script to fork CPUs to basically take CPUs from other servers to show that the communication is working and CPU licensing is working. Basically, I want to build a script that will use up CPU on a server. Any ideas? (2 Replies)
Discussion started by: cpolikowsky
2 Replies

7. Programming

Pthread_create issue

Hello My problem goes like this: I have used Pthread_create, and I have tryed to create 2 proccess but nothing happens! It does not even matter what the function im trying to create do. It is if im trying to activate an empty function. This is my code. Any help will be highly appreciated.... (1 Reply)
Discussion started by: Hellboy
1 Replies

8. Programming

pthread_create and scope usage

I have a problem with a C multi-threaded program I am writing. I cannot figure out how to keep the unique key value at the thread level. I wrote a program in C that forked a bunch of processes and then decided to convert it to threads and I can't keep the key unique to each thread. In a nutshell... (3 Replies)
Discussion started by: jenmead
3 Replies

9. Programming

unresolve pthread_create etc

how to do with that? after cc -o xxxx xxxx.c ld: Unresolved: _pthread_create _pthread_deteach _pthread_exit Thanks (3 Replies)
Discussion started by: zhshqzyc
3 Replies

10. Programming

pthread_create problem

Here is simple code for multithreading in POSIX: void* simplethread(void* arg) { printf("Hello World\n"); } int main(void) { pthread_t id; pthread_create(&id, NULL, simplethread, NULL); return 0; } Whether the new thread will run or not depends on the OS. Tricky ... (5 Replies)
Discussion started by: _rocky
5 Replies
Login or Register to Ask a Question