<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.23">
<title>MLtonRlimit</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
<link rel="stylesheet" href="./asciidoctor.css">
<link rel="stylesheet" href="./rouge-github.css">
<link rel="stylesheet" href="./mlton.css">

</head>
<body class="article">
<div id="mlton-header">
<div id="mlton-header-text">
<h2>
<a href="./Home">
MLton
20241230
</a>
</h2>
</div>
</div>
<div id="header">
<h1>MLtonRlimit</h1>
</div>
<div id="content">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sml"><span class="kr">signature</span> <span class="nn">MLTON_RLIMIT</span> <span class="p">=</span>
   <span class="kr">sig</span>
      <span class="kr">structure</span> <span class="nn">RLim</span> <span class="p">:</span> <span class="kr">sig</span>
                          <span class="kr">type</span> <span class="kt">t</span>
                          <span class="kr">val</span> <span class="nv">castFromSysWord</span><span class="p">:</span> <span class="nn">SysWord</span><span class="p">.</span><span class="n">word</span> <span class="p">-&gt;</span> <span class="n">t</span>
                          <span class="kr">val</span> <span class="nv">castToSysWord</span><span class="p">:</span> <span class="n">t</span> <span class="p">-&gt;</span> <span class="nn">SysWord</span><span class="p">.</span><span class="n">word</span>
                       <span class="kr">end</span>

      <span class="kr">val</span> <span class="nv">infinity</span><span class="p">:</span> <span class="nn">RLim</span><span class="p">.</span><span class="n">t</span>

      <span class="kr">type</span> <span class="kt">t</span>

      <span class="kr">val</span> <span class="nv">coreFileSize</span><span class="p">:</span> <span class="n">t</span>        <span class="c">(*</span><span class="cm"> CORE    max core file size *)</span>
      <span class="kr">val</span> <span class="nv">cpuTime</span><span class="p">:</span> <span class="n">t</span>             <span class="c">(*</span><span class="cm"> CPU     CPU time in seconds *)</span>
      <span class="kr">val</span> <span class="nv">dataSize</span><span class="p">:</span> <span class="n">t</span>            <span class="c">(*</span><span class="cm"> DATA    max data size *)</span>
      <span class="kr">val</span> <span class="nv">fileSize</span><span class="p">:</span> <span class="n">t</span>            <span class="c">(*</span><span class="cm"> FSIZE   Maximum filesize *)</span>
      <span class="kr">val</span> <span class="nv">numFiles</span><span class="p">:</span> <span class="n">t</span>            <span class="c">(*</span><span class="cm"> NOFILE  max number of open files *)</span>
      <span class="kr">val</span> <span class="nv">lockedInMemorySize</span><span class="p">:</span> <span class="n">t</span>  <span class="c">(*</span><span class="cm"> MEMLOCK max locked address space *)</span>
      <span class="kr">val</span> <span class="nv">numProcesses</span><span class="p">:</span> <span class="n">t</span>        <span class="c">(*</span><span class="cm"> NPROC   max number of processes *)</span>
      <span class="kr">val</span> <span class="nv">residentSetSize</span><span class="p">:</span> <span class="n">t</span>     <span class="c">(*</span><span class="cm"> RSS     max resident set size *)</span>
      <span class="kr">val</span> <span class="nv">stackSize</span><span class="p">:</span> <span class="n">t</span>           <span class="c">(*</span><span class="cm"> STACK   max stack size *)</span>
      <span class="kr">val</span> <span class="nv">virtualMemorySize</span><span class="p">:</span> <span class="n">t</span>   <span class="c">(*</span><span class="cm"> AS      virtual memory limit *)</span>

      <span class="kr">val</span> <span class="nv">get</span><span class="p">:</span> <span class="n">t</span> <span class="p">-&gt;</span> <span class="p">{</span><span class="n">hard</span><span class="p">:</span> <span class="n">rlim</span><span class="p">,</span> <span class="n">soft</span><span class="p">:</span> <span class="n">rlim</span><span class="p">}</span>
      <span class="kr">val</span> <span class="nv">set</span><span class="p">:</span> <span class="n">t</span> <span class="n">*</span> <span class="p">{</span><span class="n">hard</span><span class="p">:</span> <span class="n">rlim</span><span class="p">,</span> <span class="n">soft</span><span class="p">:</span> <span class="n">rlim</span><span class="p">}</span> <span class="p">-&gt;</span> <span class="n">unit</span>
   <span class="kr">end</span></code></pre>
</div>
</div>
<div class="paragraph">
<p><code>MLton.Rlimit</code> provides a wrapper around the C <code>getrlimit</code> and
<code>setrlimit</code> functions.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>type Rlim.t</code></p>
<div class="paragraph">
<p>the type of resource limits.</p>
</div>
</li>
<li>
<p><code>infinity</code></p>
<div class="paragraph">
<p>indicates that a resource is unlimited.</p>
</div>
</li>
<li>
<p><code>type t</code></p>
<div class="paragraph">
<p>the types of resources that can be inspected and modified.</p>
</div>
</li>
<li>
<p><code>get r</code></p>
<div class="paragraph">
<p>returns the current hard and soft limits for resource <code>r</code>. May raise
<code>OS.SysErr</code>.</p>
</div>
</li>
<li>
<p><code>set (r, {hard, soft})</code></p>
<div class="paragraph">
<p>sets the hard and soft limits for resource <code>r</code>.  May raise
<code>OS.SysErr</code>.</p>
</div>
</li>
</ul>
</div>
</div>
<div id="mlton-footer">
<div id="mlton-footer-text">
<div>
Last updated Thu Oct 21 15:53:06 2021 -0400 by Matthew Fluet.
<a href="https://github.com/MLton/mlton/commits/master/doc/guide/src/MLtonRlimit.adoc">Log</a>
<a href="https://github.com/MLton/mlton/edit/master/doc/guide/src/MLtonRlimit.adoc">Edit</a>
</div>
</div>
</body>
</html>