Chapter 6: Miscellaneous Topics

3D Thread-SafingGeneral Information

For hp-UX release 10.30 and later, Hewlett-Packard's 3D graphics APIs are supported in multi-threaded applications (using POSIX threads). However, these libraries are thread-restricted and can be accessed only from a single dedicated thread of a multi-threaded program. This documentation is not a tutorial on threads programming or multiprocessing application issues. For more, and general, information about the use of POSIX threads, consult the hp-UX documentation set. Further restrictions on use of these APIs in multi-threaded programs are:

The 3D graphics libraries support kernel threads only (libpthread); they do not support the DCE user threads package (libcma).

If your multi-threaded application uses both 3D graphics and X11, or 3D graphics and Motif routines, then the 3D graphics routine calls are restricted to the same single thread as the X11 or Motif routine calls. This restriction applies to X11 or Motif routines in any of the libraries: libX11, libXext, libXhp11, libXi, libXt, and libXm.

Miscellaneous signal handling restrictions.

SIGALRM

See the "SIGALRM Details" section below for more information.

SIGCHLD

A multi-threaded application should not change the SIGCHLD action during the short periods when the graphics libraries are starting the Graphics Resource Manager daemon ("grmd") or terminating the Starbase input daemon. See the "SIGCHLD and the GRM Daemon" and "SIGCHLD and the Starbase Input Daemon" sections below for more information.

SIGPIPE

A graphics application that uses an hp VISUALIZE-48/48XP device with hardware texture mapping, or an hp-PHIGS application that does graphics input should not change the SIGPIPE signal action. See the "SIGPIPE Details" section below for more information.

Page 115

Graphics Administration Guide for HP-UX 10.20