Chapter 6: Miscellaneous Topics
3D Thread-Safing
General 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.
Graphics Administration Guide for HP-UX 10.20
Page 115