You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
7 lines
12 KiB
7 lines
12 KiB
<!DOCTYPE html>
|
|
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferModules__StarvationDomain (infer.InferModules__StarvationDomain)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> — <span class="package">package <a href="../index.html">infer</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferModules__StarvationDomain</span></h1></header><div class="spec module" id="module-F"><a href="#module-F" class="anchor"></a><div class="def module"><code><span class="keyword">module </span>F = Format</code></div><div class="doc"></div></div><div class="spec module" id="module-Lock"><a href="#module-Lock" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="Lock/index.html">Lock</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"><p>Abstraction of a path that represents a lock, special-casing equality and comparisons
|
|
to work over type, base variable modulo this and access list</p></div></div><div class="spec module" id="module-Event"><a href="#module-Event" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="Event/index.html">Event</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"><p>Event type. Equality/comparison disregards the call trace but includes location.</p></div></div><div class="spec module" id="module-EventDomain"><a href="#module-EventDomain" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="EventDomain/index.html">EventDomain</a> : <span class="keyword">module type of </span><span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div><div class="spec module" id="module-Order"><a href="#module-Order" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="Order/index.html">Order</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"><p>Represents either
|
|
</p></div></div><div class="spec module" id="module-OrderDomain"><a href="#module-OrderDomain" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="OrderDomain/index.html">OrderDomain</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div><div class="spec module" id="module-LockState"><a href="#module-LockState" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="LockState/index.html">LockState</a> : <a href="../InferModules/AbstractDomain/index.html#module-type-WithBottom">InferModules.AbstractDomain.WithBottom</a></code></div><div class="doc"></div></div><div class="spec module" id="module-UIThreadDomain"><a href="#module-UIThreadDomain" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="UIThreadDomain/index.html">UIThreadDomain</a> : <a href="../InferModules/AbstractDomain/index.html#module-type-WithBottom">InferModules.AbstractDomain.WithBottom</a><span class="keyword"> with </span><span class="keyword">type </span><a href="../InferModules/AbstractDomain/module-type-WithBottom/index.html#type-astate">astate</a><span class="keyword"> = </span>string <a href="../InferModules/AbstractDomain/Types/index.html#type-bottom_lifted">InferModules.AbstractDomain.Types.bottom_lifted</a></code></div><div class="doc"></div></div><div class="spec type" id="type-astate"><a href="#type-astate" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>astate</code><code></code><code><span class="keyword"> = </span></code><code>{</code><table class="record"><tr id="type-astate.lock_state" class="anchored"><td class="def field"><a href="#type-astate.lock_state" class="anchor"></a><code>lock_state : <a href="LockState/index.html#type-astate">LockState.astate</a>;</code></td></tr><tr id="type-astate.events" class="anchored"><td class="def field"><a href="#type-astate.events" class="anchor"></a><code>events : <a href="EventDomain/index.html#type-astate">EventDomain.astate</a>;</code></td></tr><tr id="type-astate.order" class="anchored"><td class="def field"><a href="#type-astate.order" class="anchor"></a><code>order : <a href="OrderDomain/index.html#type-astate">OrderDomain.astate</a>;</code></td></tr><tr id="type-astate.ui" class="anchored"><td class="def field"><a href="#type-astate.ui" class="anchor"></a><code>ui : <a href="UIThreadDomain/index.html#type-astate">UIThreadDomain.astate</a>;</code></td></tr></table><code>}</code><code></code></div><div class="doc"></div></div><div class="spec include"><div class="doc"></div><details open="open"><summary><span class="def"><code><span class="keyword">include </span><a href="../InferModules/AbstractDomain/index.html#module-type-WithBottom">InferModules.AbstractDomain.WithBottom</a><span class="keyword"> with </span><span class="keyword">type </span><a href="../InferModules/AbstractDomain/module-type-WithBottom/index.html#type-astate">astate</a> := <a href="index.html#type-astate">astate</a></code></span></summary><div class="spec include"><div class="doc"></div><details open="open"><summary><span class="def"><code><span class="keyword">include </span><a href="../InferModules/AbstractDomain/index.html#module-type-S">InferModules.AbstractDomain.S</a></code></span></summary><div class="spec type" id="type-astate"><a href="#type-astate" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>astate</code><code></code><code></code></div><div class="doc"></div></div><div class="spec val" id="val-(<=)"><a href="#val-(<=)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(<=) : lhs:<a href="index.html#type-astate">astate</a> <span class="keyword">‑></span> rhs:<a href="index.html#type-astate">astate</a> <span class="keyword">‑></span> bool</code></div><div class="doc"><p>the partial order induced by join</p></div></div><div class="spec val" id="val-join"><a href="#val-join" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>join : <a href="index.html#type-astate">astate</a> <span class="keyword">‑></span> <a href="index.html#type-astate">astate</a> <span class="keyword">‑></span> <a href="index.html#type-astate">astate</a></code></div><div class="doc"></div></div><div class="spec val" id="val-widen"><a href="#val-widen" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>widen : prev:<a href="index.html#type-astate">astate</a> <span class="keyword">‑></span> next:<a href="index.html#type-astate">astate</a> <span class="keyword">‑></span> num_iters:int <span class="keyword">‑></span> <a href="index.html#type-astate">astate</a></code></div><div class="doc"></div></div><div class="spec val" id="val-pp"><a href="#val-pp" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp : <a href="../InferModules/AbstractDomain/index.html#module-F">InferModules.AbstractDomain.F</a>.formatter <span class="keyword">‑></span> <a href="index.html#type-astate">astate</a> <span class="keyword">‑></span> unit</code></div><div class="doc"></div></div></details></div><div class="spec val" id="val-empty"><a href="#val-empty" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>empty : <a href="index.html#type-astate">astate</a></code></div><div class="doc"><p>The bottom value of the domain.
|
|
Naming it empty instead of bottom helps to bind the empty
|
|
value for sets and maps to the natural definition for bottom</p></div></div><div class="spec val" id="val-is_empty"><a href="#val-is_empty" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>is_empty : <a href="index.html#type-astate">astate</a> <span class="keyword">‑></span> bool</code></div><div class="doc"><p>Return true if this is the bottom value</p></div></div></details></div><div class="spec val" id="val-acquire"><a href="#val-acquire" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>acquire : <a href="index.html#type-astate">astate</a> <span class="keyword">‑></span> <a href="../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a> <span class="keyword">‑></span> <a href="index.html#module-Lock">Lock</a>.t <span class="keyword">‑></span> <a href="index.html#type-astate">astate</a></code></div><div class="doc"></div></div><div class="spec val" id="val-release"><a href="#val-release" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>release : <a href="index.html#type-astate">astate</a> <span class="keyword">‑></span> <a href="index.html#module-Lock">Lock</a>.t <span class="keyword">‑></span> <a href="index.html#type-astate">astate</a></code></div><div class="doc"></div></div><div class="spec val" id="val-blocking_call"><a href="#val-blocking_call" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>blocking_call : caller:<a href="../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span class="keyword">‑></span> callee:<a href="../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span class="keyword">‑></span> <a href="Event/index.html#type-severity_t">Event.severity_t</a> <span class="keyword">‑></span> <a href="../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a> <span class="keyword">‑></span> <a href="index.html#type-astate">astate</a> <span class="keyword">‑></span> <a href="index.html#type-astate">astate</a></code></div><div class="doc"></div></div><div class="spec val" id="val-set_on_ui_thread"><a href="#val-set_on_ui_thread" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>set_on_ui_thread : <a href="index.html#type-astate">astate</a> <span class="keyword">‑></span> string <span class="keyword">‑></span> <a href="index.html#type-astate">astate</a></code></div><div class="doc"><p>set the property "runs on UI thread" to true by attaching the given explanation string as to
|
|
why this method is thought to do so</p></div></div><div class="spec type" id="type-summary"><a href="#type-summary" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>summary</code><code><span class="keyword"> = </span><a href="index.html#type-astate">astate</a></code><code></code></div><div class="doc"></div></div><div class="spec val" id="val-pp_summary"><a href="#val-pp_summary" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp_summary : <a href="index.html#module-F">F</a>.formatter <span class="keyword">‑></span> <a href="index.html#type-summary">summary</a> <span class="keyword">‑></span> unit</code></div><div class="doc"></div></div><div class="spec val" id="val-integrate_summary"><a href="#val-integrate_summary" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>integrate_summary : <a href="index.html#type-astate">astate</a> <span class="keyword">‑></span> <a href="../../InferIR/InferIR/Typ/Procname/index.html#type-t">InferIR.Typ.Procname.t</a> <span class="keyword">‑></span> <a href="../../InferBase/InferBase/Location/index.html#type-t">InferBase.Location.t</a> <span class="keyword">‑></span> <a href="index.html#type-summary">summary</a> <span class="keyword">‑></span> <a href="index.html#type-astate">astate</a></code></div><div class="doc"></div></div></body></html> |