Commit | Line | Data |
---|---|---|
7f918cf1 CE |
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`. |