pthread_setrunon_np(3P)

pthread_setrunon_np, pthread_getrunon_np - thread CPU scheduling affinity

As shipped in IRIX 6.5.19. Last changed in IRIX 6.5.15.

NAME
     pthread_setrunon_np, pthread_getrunon_np - thread CPU scheduling affinity

C SYNOPSIS
     #include <pthread.h>

     int pthread_setrunon_np(int cpu);

     int pthread_getrunon_np(int *cur_cpu);

DESCRIPTION
     Executing threads run on the most eligible CPU determined by the kernel.
     This choice may be changed for threads with the PTHREAD_SCOPE_SYSTEM or
     PTHREAD_SCOPE_BOUND_NP attribute using the pthread_setrunon_np()
     interface.  This interface requests that the calling thread execute
     exclusively on the named cpu.  The CPU should be chosen in the same way
     as for sysmp() interface with the MP_MUSTRUN command.  To further control
     execution the MP_RESTRICT and MP_ISOLATE sysmp() commands can be used as
     usual.

     To determine the currently requested CPU affinity the
     pthread_getrunon_np() interface can be used.  It returns the the caller's
     CPU affinity (set by a previous call to pthread_setrunon_np()) in
     cur_cpu.

DIAGNOSTICS
     On success pthread_setrunon_np() and pthread_getrunon_np() return zero;
     otherwise an error number is returned.

     pthread_setrunon_np() may return:

     [EPERM]        The caller is not a PTHREAD_SCOPE_SYSTEM or a
                    PTHREAD_SCOPE_BOUND_NP thread.

     [EINVAL]       The cpu argument is not valid.

     pthread_getrunon_np() may return:

     [EPERM]        The caller is not a PTHREAD_SCOPE_SYSTEM or a
                    PTHREAD_SCOPE_BOUND_NP thread.

     [EINVAL]       The caller has no affinity set.

SEE ALSO
     pthread_attr_setscope(3P), sysmp(2).

NOTES
     The _np suffix indicates that this is a non-portable interface and is not
     covered by any standard.