Reuse 4.2.0 (20050808) ====================== (exec.c) New functions added: `task_GetRealTime', `task_SetMaxTimeMillis', `task_EnableMemoryLimitError', `task_IsMemoryLimit'. These functions are currently implemented only for the Linux system. The functions are described below. Added support for process real time accounting. The process start and process stop real (astronomical) time is saved, and the real execution time may be obtained using `task_GetRealTime' function. Added support for some non-standard Linux kernel features, which are available only on a specially patched kernel. The features are: o Support for millisecond-precision time limits. The precise time limit is set using `task_SetMaxTimeMillis' function. If the kernel does not support millisecond time limits, the reuse library tries to emulate precise time limits using second-precision time limits. Check whether the kernel support precise time limits is performed upon the first call of `task_SetMaxTimeMillis' or `task_SetMaxTime' functions, so it is possible to compile the library on the kernel without precise time-limit support, and run the programs on the kernel with precise time-limit support. o Support for "Memory Limit Error" detection. Normally, if a process runs out of available address memory (for example, as configured by `task_SetVMSize'), the kernel refuses to allocate more memory and the further behavious of the process is determined by the process itself. If support for memory limit error is activated, the kernel kills the offending process with SIGKILL immediately and sets special "Memory Limit Error" flag, which is available for the parent. Memory limit error support is activated by a call of `task_EnableMemoryLimitError', and the memory limit error condition is checked by `task_IsMemoryLimit'. If the kernel does not support memory limit error detection, call of `task_EnableMemoryLimitError' does no harm, and call of `task_IsMemoryLimit' always returns 0.