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.

2 lines
15 KiB

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>StarvationDomain (infer.InferModules.StarvationDomain)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">InferModules</a> &#x00BB; StarvationDomain</nav><h1>Module <code>InferModules.StarvationDomain</code></h1></header><div class="spec module" id="module-F"><a href="#module-F" class="anchor"></a><code><span class="keyword">module</span> F = Stdlib.Format</code></div><dl><dt class="spec module" id="module-Lock"><a href="#module-Lock" class="anchor"></a><code><span class="keyword">module</span> <a href="Lock/index.html">Lock</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd><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></dd></dl><dl><dt class="spec module" id="module-Event"><a href="#module-Event" class="anchor"></a><code><span class="keyword">module</span> <a href="Event/index.html">Event</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd><p>Represents the existence of a program path from the current method to the eventual acquisition of a lock or a blocking call. Equality/comparison disregards the call trace but includes location.</p></dd></dl><div class="spec module" id="module-EventDomain"><a href="#module-EventDomain" class="anchor"></a><code><span class="keyword">module</span> EventDomain : <a href="../ExplicitTrace/index.html#module-type-FiniteSet">ExplicitTrace.FiniteSet</a> <span class="keyword">with</span> <span class="keyword">type</span> <a href="../ExplicitTrace/index.html#module-type-FiniteSet">FiniteSet</a>.elt = <a href="Event/index.html#type-t">Event.t</a></code></div><dl><dt class="spec module" id="module-Order"><a href="#module-Order" class="anchor"></a><code><span class="keyword">module</span> <a href="Order/index.html">Order</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></dt><dd><p>Represents the existence of a program path to the <code>first</code> lock being taken in the current method or, transitively, a callee *in the same class*, and, which continues (to potentially another class) until the <code>eventually</code> event, schematically --&gt;first--&gt;eventually. It is guaranteed that during the second part of the trace (first--&gt;eventually) the lock <code>first</code> is not released.</p></dd></dl><div class="spec module" id="module-OrderDomain"><a href="#module-OrderDomain" class="anchor"></a><code><span class="keyword">module</span> OrderDomain : <a href="../ExplicitTrace/index.html#module-type-FiniteSet">ExplicitTrace.FiniteSet</a> <span class="keyword">with</span> <span class="keyword">type</span> <a href="../ExplicitTrace/index.html#module-type-FiniteSet">FiniteSet</a>.elt = <a href="Order/index.html#type-t">Order.t</a></code></div><div class="spec module" id="module-LockState"><a href="#module-LockState" class="anchor"></a><code><span class="keyword">module</span> <a href="LockState/index.html">LockState</a> : <a href="../AbstractDomain/index.html#module-type-WithTop">AbstractDomain.WithTop</a></code></div><div class="spec module" id="module-UIThreadExplanationDomain"><a href="#module-UIThreadExplanationDomain" class="anchor"></a><code><span class="keyword">module</span> <a href="UIThreadExplanationDomain/index.html">UIThreadExplanationDomain</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="spec module" id="module-UIThreadDomain"><a href="#module-UIThreadDomain" class="anchor"></a><code><span class="keyword">module</span> <a href="UIThreadDomain/index.html">UIThreadDomai