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.
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.