HP DCE/9000 Version 1.7 Application Development Tools for HP-UX 11.0 Release Note
HP DCE 1.7 Application Development Tools Release Note 41
Developing DCE Applications with HP DCE/ 9000
Notes on Programming with HP DCE
Process forking from within RPC applications that use the
connectionless protocol (UDP/IP) is supported, with the following
restrictions:
• For client-side applications, the UDP/IP protocol is fork safe. It is the
responsibility of the application developer to ensure that all other
application threads are capable of crossing forks safely.
• On the server side, the only supported behavior is for a server thread
to fork and exec, with no use of RPC in the child of the fork until after
the exec.
File Locking
The HP DCE Threads fcntl() wrapper does not provide for
thread-synchronous file locking. The entire process will block when a call
to fcntl() specifies F_SETLKW and the file is currently locked by another
process.
Note also that HP-UX file locks are a process-wide resource. For this
reason, if multiple threads call fcntl() to lock the same section of a file,
all the calls will succeed, and each thread will believe it holds the lock.
However, only a single, process-wide lock is actually obtained — the first
call obtains the lock, the second and subsequent calls have no effect. If
one thread releases this lock, the other threads will continue to believe
the file is locked, when in fact the process no longer holds any lock on
that section of the file.
Use mutex locks to ensure that only one thread at a time locks a
particular file or section of a file.
The previous comments regarding file locking with fcntl() also apply to
lockf(). lockf() is not wrapped by DCE Threads.
sec_id_parse_name()
CAUTION In previous HP DCE releases, the sec_id_parse_name() library call
could be passed a NULL pointer or null string for the global principal
name and would return the local cell name. This behavior was
maintained in HP DCE 1.6, but is not supported in HP DCE 1.7. Instead,
pass “ /.:” to obtain this result.