Avoid restricted system calls
A well-behaved C UDR must avoid the use of restricted
system calls, which can have the following adverse effects:
- They might block I/O, which causes the operating system to suspend
the process that calls them.
This suspension slows down both the C UDR that contains the calls and any other threads that share the same CPU virtual processor.
- Many system calls allocate resources local to the process and are not re-entrant.
Informix®
cannot
provide a definitive list of unsafe system calls because system calls
that are unsafe vary among versions of operating systems and different
types of operating systems. Additionally, the implementation of the
VPs is different between UNIX™ or Linux™ and Windows™:
- On UNIX™ or Linux™, the VPs are implemented as separate processes.
- On Windows™, each VP is a thread of a common process.
The difference in VP implementation means that some system calls are acceptable when the C UDR runs on Windows™ but not when this same UDR runs on UNIX™ or Linux™. There are also differences in how UNIX™ or Linux™ handles shared libraries and how Windows™ handles dynamic link libraries (DLLs) that can affect the platform on which operating-system calls are valid. Therefore, UDRs might not be portable from one operating system to another.