Import Upstream version 20180207
[hcoop/debian/mlton.git] / doc / guide / src / MLtonRlimit.adoc
1 MLtonRlimit
2 ===========
3
4 [source,sml]
5 ----
6 signature MLTON_RLIMIT =
7 sig
8 structure RLim : sig
9 type t
10 val castFromSysWord: SysWord.word -> t
11 val castToSysWord: t -> SysWord.word
12 end
13
14 val infinity: RLim.t
15
16 type t
17
18 val coreFileSize: t (* CORE max core file size *)
19 val cpuTime: t (* CPU CPU time in seconds *)
20 val dataSize: t (* DATA max data size *)
21 val fileSize: t (* FSIZE Maximum filesize *)
22 val numFiles: t (* NOFILE max number of open files *)
23 val lockedInMemorySize: t (* MEMLOCK max locked address space *)
24 val numProcesses: t (* NPROC max number of processes *)
25 val residentSetSize: t (* RSS max resident set size *)
26 val stackSize: t (* STACK max stack size *)
27 val virtualMemorySize: t (* AS virtual memory limit *)
28
29 val get: t -> {hard: rlim, soft: rlim}
30 val set: t * {hard: rlim, soft: rlim} -> unit
31 end
32 ----
33
34 `MLton.Rlimit` provides a wrapper around the C `getrlimit` and
35 `setrlimit` functions.
36
37 * `type Rlim.t`
38 +
39 the type of resource limits.
40
41 * `infinity`
42 +
43 indicates that a resource is unlimited.
44
45 * `type t`
46 +
47 the types of resources that can be inspected and modified.
48
49 * `get r`
50 +
51 returns the current hard and soft limits for resource `r`. May raise
52 `OS.SysErr`.
53
54 * `set (r, {hard, soft})`
55 +
56 sets the hard and soft limits for resource `r`. May raise
57 `OS.SysErr`.