Commit 71975a17 authored by Philipp Huebner's avatar Philipp Huebner

Imported Upstream version 1.0.3

parent 56e8af12
sudo: false
language: erlang
install:
- rebar get-deps
script: rebar compile && rebar skip_deps=true eunit
otp_release:
- 17.1
- 17.5
- 18.1
# Version 1.0.3
* Added time related compatibility module, added API documentation (Paweł Chmielowski)
* Improve documentation readability (Marek Foss)
# Version 1.0.2
* Add p1_time_compat module to ease support for both R17 and R18 Erlang time features (Paweł Chmielowski)
# Version 1.0.1
* Better Rebar3 support, remove warning about missing hex plugin when
building with rebar (Mickaël Rémond)
This diff is collapsed.
This diff is collapsed.
# p1_utils
[![Build Status](https://travis-ci.org/processone/p1_utils.svg?branch=master)](https://travis-ci.org/processone/p1_utils) [![Coverage Status](https://coveralls.io/repos/processone/p1_utils/badge.svg?branch=master&service=github)](https://coveralls.io/github/processone/p1_utils?branch=master) [![Hex version](https://img.shields.io/hexpm/v/p1_utils.svg "Hex version")](https://hex.pm/packages/p1_utils)
p1_utils is an application containing ProcessOne modules and tools that are leveraged in other development projects:
* `p1_fsm` and `p1_server` are drop-in replacements of Erlang gen_fsm and gen_server, offering extra option for better
reliability in production. They support mostly priority messages and message queue length controls.
* `p1_nif_utils` is an helper utilities for handling NIF code.
* `treap` is a treap algorithm implementation. It is a randomized binary search tree. See: https://en.wikipedia.org/wiki/Treap
* `p1_time_compat` is a module to ease support and migration of Erlang
time management function from Erlang R16/R17 to Erlang R18.
If you have `rebar` binary, you can generate `p1_utils` documentation by running `rebar3 edoc`.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>The p1_utils application</title>
</head>
<frameset cols="20%,80%">
<frame src="modules-frame.html" name="modulesFrame" title="">
<frame src="overview-summary.html" name="overviewFrame" title="">
<noframes>
<h2>This page uses frames</h2>
<p>Your browser does not accept frames.
<br>You should go to the <a href="overview-summary.html">non-frame version</a> instead.
</p>
</noframes>
</frameset>
</html>
\ No newline at end of file
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>The p1_utils application</title>
<link rel="stylesheet" type="text/css" href="style.css" title="EDoc">
</head>
<body bgcolor="white">
<h2 class="indextitle">Modules</h2>
<table width="100%" border="0" summary="list of modules">
<tr><td><a href="p1_fsm.html" target="overviewFrame" class="module">p1_fsm</a></td></tr>
<tr><td><a href="p1_nif_utils.html" target="overviewFrame" class="module">p1_nif_utils</a></td></tr>
<tr><td><a href="p1_server.html" target="overviewFrame" class="module">p1_server</a></td></tr>
<tr><td><a href="p1_time_compat.html" target="overviewFrame" class="module">p1_time_compat</a></td></tr>
<tr><td><a href="treap.html" target="overviewFrame" class="module">treap</a></td></tr></table>
</body>
</html>
\ No newline at end of file
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>P1 Erlang Utils</title>
<link rel="stylesheet" type="text/css" href="style.css" title="EDoc">
</head>
<body bgcolor="white" class="mainpane">
<div class="navbar"><a name="#navbar_top"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.process-one.net" target="_top"><img src="logo_p1.png" align="right" border="0" alt="Logo"></a></td></tr></table></div>
<h1>P1 Erlang Utils</h1>
<p>Copyright © 2002-2015 ProcessOne</p>
<p><b>Version:</b> 1.0.0</p>
<p><b>Authors:</b> ProcessOne [<em>web site:</em> <tt><a href="http://www.process-one.net" target="_top">http://www.process-one.net</a></tt>].</p>
<p>
This is a set of Erlang utilities used in other ProcessOne projects.</p>
<p>p1_utils is an application containing ProcessOne modules and tools that are leveraged in other development projects:</p>
<ul>
<li><code>p1_fsm</code> and <code>p1_server</code> are drop-in replacements of Erlang gen_fsm and gen_server, offering extra option for better
reliability in production. They support mostly priority messages and message queue length controls.</li>
<li><code>p1_nif_utils</code> is an helper utilities for handling NIF code.</li>
<li><code>treap</code> is a treap algorithm implementation. It is a randomized binary search tree. See: <a href="https://en.wikipedia.org/wiki/Treap">Treap on Wikipedia</a></li>
</ul>
<hr>
<div class="navbar"><a name="#navbar_bottom"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.process-one.net" target="_top"><img src="logo_p1.png" align="right" border="0" alt="Logo"></a></td></tr></table></div>
<p><i>Generated by EDoc, Dec 17 2015, 23:20:00.</i></p>
</body>
</html>
@author ProcessOne [http://www.process-one.net]
@copyright 2002-2015 ProcessOne
@version 1.0.0
@title P1 Erlang Utils
@doc
This is a set of Erlang utilities used in other ProcessOne projects.
p1_utils is an application containing ProcessOne modules and tools that are leveraged in other development projects:
<ul>
<li><code>p1_fsm</code> and <code>p1_server</code> are drop-in replacements of Erlang gen_fsm and gen_server, offering extra option for better
reliability in production. They support mostly priority messages and message queue length controls.</li>
<li><code>p1_nif_utils</code> is an helper utilities for handling NIF code.</li>
<li><code>treap</code> is a treap algorithm implementation. It is a randomized binary search tree. See: <a href="https://en.wikipedia.org/wiki/Treap">Treap on Wikipedia</a></li>
</ul>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Module p1_fsm</title>
<link rel="stylesheet" type="text/css" href="style.css" title="EDoc">
</head>
<body bgcolor="white" class="mainpane">
<div class="navbar"><a name="#navbar_top"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.process-one.net" target="_top"><img src="logo_p1.png" align="right" border="0" alt="Logo"></a></td></tr></table></div>
<hr>
<h1>Module p1_fsm</h1>
<ul class="index"><li><a href="#index">Function Index</a></li><li><a href="#functions">Function Details</a></li></ul>
<p><b>This module defines the <tt>p1_fsm</tt> behaviour.</b><br> Required callback functions: <tt>init/1</tt>, <tt>handle_event/3</tt>, <tt>handle_sync_event/4</tt>, <tt>handle_info/3</tt>, <tt>terminate/3</tt>, <tt>code_change/4</tt>.</p>
<h2><a name="index">Function Index</a></h2>
<table width="100%" border="0" cellspacing="0" cellpadding="2" summary="function index"><tr><td valign="top"><a href="#cancel_timer-1">cancel_timer/1</a></td><td></td></tr>
<tr><td valign="top"><a href="#enter_loop-4">enter_loop/4</a></td><td></td></tr>
<tr><td valign="top"><a href="#enter_loop-5">enter_loop/5</a></td><td></td></tr>
<tr><td valign="top"><a href="#enter_loop-6">enter_loop/6</a></td><td></td></tr>
<tr><td valign="top"><a href="#format_status-2">format_status/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#init_it-6">init_it/6</a></td><td></td></tr>
<tr><td valign="top"><a href="#print_event-3">print_event/3</a></td><td></td></tr>
<tr><td valign="top"><a href="#reply-2">reply/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#send_all_state_event-2">send_all_state_event/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#send_event-2">send_event/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#send_event_after-2">send_event_after/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#start-3">start/3</a></td><td></td></tr>
<tr><td valign="top"><a href="#start-4">start/4</a></td><td></td></tr>
<tr><td valign="top"><a href="#start_link-3">start_link/3</a></td><td></td></tr>
<tr><td valign="top"><a href="#start_link-4">start_link/4</a></td><td></td></tr>
<tr><td valign="top"><a href="#start_timer-2">start_timer/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#sync_send_all_state_event-2">sync_send_all_state_event/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#sync_send_all_state_event-3">sync_send_all_state_event/3</a></td><td></td></tr>
<tr><td valign="top"><a href="#sync_send_event-2">sync_send_event/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#sync_send_event-3">sync_send_event/3</a></td><td></td></tr>
<tr><td valign="top"><a href="#system_code_change-4">system_code_change/4</a></td><td></td></tr>
<tr><td valign="top"><a href="#system_continue-3">system_continue/3</a></td><td></td></tr>
<tr><td valign="top"><a href="#system_terminate-4">system_terminate/4</a></td><td></td></tr>
<tr><td valign="top"><a href="#wake_hib-7">wake_hib/7</a></td><td></td></tr>
</table>
<h2><a name="functions">Function Details</a></h2>
<h3 class="function"><a name="cancel_timer-1">cancel_timer/1</a></h3>
<div class="spec">
<p><tt>cancel_timer(Ref) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="enter_loop-4">enter_loop/4</a></h3>
<div class="spec">
<p><tt>enter_loop(Mod, Options, StateName, StateData) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="enter_loop-5">enter_loop/5</a></h3>
<div class="spec">
<p><tt>enter_loop(Mod, Options, StateName, StateData, ServerName) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="enter_loop-6">enter_loop/6</a></h3>
<div class="spec">
<p><tt>enter_loop(Mod, Options, StateName, StateData, ServerName, Timeout) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="format_status-2">format_status/2</a></h3>
<div class="spec">
<p><tt>format_status(Opt, StatusData) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="init_it-6">init_it/6</a></h3>
<div class="spec">
<p><tt>init_it(Starter, Parent, Name, Mod, Args, Options) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="print_event-3">print_event/3</a></h3>
<div class="spec">
<p><tt>print_event(Dev, X2, Name) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="reply-2">reply/2</a></h3>
<div class="spec">
<p><tt>reply(X1, Reply) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="send_all_state_event-2">send_all_state_event/2</a></h3>
<div class="spec">
<p><tt>send_all_state_event(Name, Event) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="send_event-2">send_event/2</a></h3>
<div class="spec">
<p><tt>send_event(Name, Event) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="send_event_after-2">send_event_after/2</a></h3>
<div class="spec">
<p><tt>send_event_after(Time, Event) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="start-3">start/3</a></h3>
<div class="spec">
<p><tt>start(Mod, Args, Options) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="start-4">start/4</a></h3>
<div class="spec">
<p><tt>start(Name, Mod, Args, Options) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="start_link-3">start_link/3</a></h3>
<div class="spec">
<p><tt>start_link(Mod, Args, Options) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="start_link-4">start_link/4</a></h3>
<div class="spec">
<p><tt>start_link(Name, Mod, Args, Options) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="start_timer-2">start_timer/2</a></h3>
<div class="spec">
<p><tt>start_timer(Time, Msg) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="sync_send_all_state_event-2">sync_send_all_state_event/2</a></h3>
<div class="spec">
<p><tt>sync_send_all_state_event(Name, Event) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="sync_send_all_state_event-3">sync_send_all_state_event/3</a></h3>
<div class="spec">
<p><tt>sync_send_all_state_event(Name, Event, Timeout) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="sync_send_event-2">sync_send_event/2</a></h3>
<div class="spec">
<p><tt>sync_send_event(Name, Event) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="sync_send_event-3">sync_send_event/3</a></h3>
<div class="spec">
<p><tt>sync_send_event(Name, Event, Timeout) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="system_code_change-4">system_code_change/4</a></h3>
<div class="spec">
<p><tt>system_code_change(X1, Module, OldVsn, Extra) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="system_continue-3">system_continue/3</a></h3>
<div class="spec">
<p><tt>system_continue(Parent, Debug, X3) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="system_terminate-4">system_terminate/4</a></h3>
<div class="spec">
<p><tt>system_terminate(Reason::term(), Parent::term(), Debug::term(), X4::[term(), ...]) -&gt; no_return()</tt><br></p>
</div>
<h3 class="function"><a name="wake_hib-7">wake_hib/7</a></h3>
<div class="spec">
<p><tt>wake_hib(Parent, Name, StateName, StateData, Mod, Debug, Limits) -&gt; any()</tt></p>
</div>
<hr>
<div class="navbar"><a name="#navbar_bottom"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.process-one.net" target="_top"><img src="logo_p1.png" align="right" border="0" alt="Logo"></a></td></tr></table></div>
<p><i>Generated by EDoc, Dec 17 2015, 23:20:00.</i></p>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Module p1_nif_utils</title>
<link rel="stylesheet" type="text/css" href="style.css" title="EDoc">
</head>
<body bgcolor="white" class="mainpane">
<div class="navbar"><a name="#navbar_top"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.process-one.net" target="_top"><img src="logo_p1.png" align="right" border="0" alt="Logo"></a></td></tr></table></div>
<hr>
<h1>Module p1_nif_utils</h1>
<ul class="index"><li><a href="#index">Function Index</a></li><li><a href="#functions">Function Details</a></li></ul>
<h2><a name="index">Function Index</a></h2>
<table width="100%" border="0" cellspacing="0" cellpadding="2" summary="function index"><tr><td valign="top"><a href="#get_so_path-3">get_so_path/3</a></td><td></td></tr>
</table>
<h2><a name="functions">Function Details</a></h2>
<h3 class="function"><a name="get_so_path-3">get_so_path/3</a></h3>
<div class="spec">
<p><tt>get_so_path(ModuleName, AppNames, SoName) -&gt; any()</tt></p>
</div>
<hr>
<div class="navbar"><a name="#navbar_bottom"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.process-one.net" target="_top"><img src="logo_p1.png" align="right" border="0" alt="Logo"></a></td></tr></table></div>
<p><i>Generated by EDoc, Dec 17 2015, 23:20:00.</i></p>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Module p1_server</title>
<link rel="stylesheet" type="text/css" href="style.css" title="EDoc">
</head>
<body bgcolor="white" class="mainpane">
<div class="navbar"><a name="#navbar_top"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.process-one.net" target="_top"><img src="logo_p1.png" align="right" border="0" alt="Logo"></a></td></tr></table></div>
<hr>
<h1>Module p1_server</h1>
<ul class="index"><li><a href="#index">Function Index</a></li><li><a href="#functions">Function Details</a></li></ul>
<p><b>This module defines the <tt>p1_server</tt> behaviour.</b><br> Required callback functions: <tt>init/1</tt>, <tt>handle_call/3</tt>, <tt>handle_cast/2</tt>, <tt>handle_info/2</tt>, <tt>terminate/2</tt>, <tt>code_change/3</tt>.</p>
<h2><a name="index">Function Index</a></h2>
<table width="100%" border="0" cellspacing="0" cellpadding="2" summary="function index"><tr><td valign="top"><a href="#abcast-2">abcast/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#abcast-3">abcast/3</a></td><td></td></tr>
<tr><td valign="top"><a href="#call-2">call/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#call-3">call/3</a></td><td></td></tr>
<tr><td valign="top"><a href="#cast-2">cast/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#enter_loop-3">enter_loop/3</a></td><td></td></tr>
<tr><td valign="top"><a href="#enter_loop-4">enter_loop/4</a></td><td></td></tr>
<tr><td valign="top"><a href="#enter_loop-5">enter_loop/5</a></td><td></td></tr>
<tr><td valign="top"><a href="#format_status-2">format_status/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#init_it-6">init_it/6</a></td><td></td></tr>
<tr><td valign="top"><a href="#multi_call-2">multi_call/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#multi_call-3">multi_call/3</a></td><td></td></tr>
<tr><td valign="top"><a href="#multi_call-4">multi_call/4</a></td><td></td></tr>
<tr><td valign="top"><a href="#reply-2">reply/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#start-3">start/3</a></td><td></td></tr>
<tr><td valign="top"><a href="#start-4">start/4</a></td><td></td></tr>
<tr><td valign="top"><a href="#start_link-3">start_link/3</a></td><td></td></tr>
<tr><td valign="top"><a href="#start_link-4">start_link/4</a></td><td></td></tr>
<tr><td valign="top"><a href="#system_code_change-4">system_code_change/4</a></td><td></td></tr>
<tr><td valign="top"><a href="#system_continue-3">system_continue/3</a></td><td></td></tr>
<tr><td valign="top"><a href="#system_terminate-4">system_terminate/4</a></td><td></td></tr>
<tr><td valign="top"><a href="#wake_hib-6">wake_hib/6</a></td><td></td></tr>
</table>
<h2><a name="functions">Function Details</a></h2>
<h3 class="function"><a name="abcast-2">abcast/2</a></h3>
<div class="spec">
<p><tt>abcast(Name, Request) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="abcast-3">abcast/3</a></h3>
<div class="spec">
<p><tt>abcast(Nodes, Name, Request) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="call-2">call/2</a></h3>
<div class="spec">
<p><tt>call(Name, Request) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="call-3">call/3</a></h3>
<div class="spec">
<p><tt>call(Name, Request, Timeout) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="cast-2">cast/2</a></h3>
<div class="spec">
<p><tt>cast(Dest, Request) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="enter_loop-3">enter_loop/3</a></h3>
<div class="spec">
<p><tt>enter_loop(Mod, Options, State) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="enter_loop-4">enter_loop/4</a></h3>
<div class="spec">
<p><tt>enter_loop(Mod, Options, State, ServerName) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="enter_loop-5">enter_loop/5</a></h3>
<div class="spec">
<p><tt>enter_loop(Mod, Options, State, ServerName, Timeout) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="format_status-2">format_status/2</a></h3>
<div class="spec">
<p><tt>format_status(Opt, StatusData) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="init_it-6">init_it/6</a></h3>
<div class="spec">
<p><tt>init_it(Starter, Parent, Name, Mod, Args, Options) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="multi_call-2">multi_call/2</a></h3>
<div class="spec">
<p><tt>multi_call(Name, Req) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="multi_call-3">multi_call/3</a></h3>
<div class="spec">
<p><tt>multi_call(Nodes, Name, Req) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="multi_call-4">multi_call/4</a></h3>
<div class="spec">
<p><tt>multi_call(Nodes, Name, Req, Timeout) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="reply-2">reply/2</a></h3>
<div class="spec">
<p><tt>reply(X1, Reply) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="start-3">start/3</a></h3>
<div class="spec">
<p><tt>start(Mod, Args, Options) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="start-4">start/4</a></h3>
<div class="spec">
<p><tt>start(Name, Mod, Args, Options) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="start_link-3">start_link/3</a></h3>
<div class="spec">
<p><tt>start_link(Mod, Args, Options) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="start_link-4">start_link/4</a></h3>
<div class="spec">
<p><tt>start_link(Name, Mod, Args, Options) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="system_code_change-4">system_code_change/4</a></h3>
<div class="spec">
<p><tt>system_code_change(X1, Module, OldVsn, Extra) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="system_continue-3">system_continue/3</a></h3>
<div class="spec">
<p><tt>system_continue(Parent, Debug, X3) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="system_terminate-4">system_terminate/4</a></h3>
<div class="spec">
<p><tt>system_terminate(Reason::term(), Parent::term(), Debug::term(), X4::[term()]) -&gt; no_return()</tt><br></p>
</div>
<h3 class="function"><a name="wake_hib-6">wake_hib/6</a></h3>
<div class="spec">
<p><tt>wake_hib(Parent, Name, State, Mod, Debug, Limits) -&gt; any()</tt></p>
</div>
<hr>
<div class="navbar"><a name="#navbar_bottom"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.process-one.net" target="_top"><img src="logo_p1.png" align="right" border="0" alt="Logo"></a></td></tr></table></div>
<p><i>Generated by EDoc, Dec 17 2015, 23:20:00.</i></p>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Module p1_time_compat</title>
<link rel="stylesheet" type="text/css" href="style.css" title="EDoc">
</head>
<body bgcolor="white" class="mainpane">
<div class="navbar"><a name="#navbar_top"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.process-one.net" target="_top"><img src="logo_p1.png" align="right" border="0" alt="Logo"></a></td></tr></table></div>
<hr>
<h1>Module p1_time_compat</h1>
<ul class="index"><li><a href="#index">Function Index</a></li><li><a href="#functions">Function Details</a></li></ul>
<h2><a name="index">Function Index</a></h2>
<table width="100%" border="0" cellspacing="0" cellpadding="2" summary="function index"><tr><td valign="top"><a href="#convert_time_unit-3">convert_time_unit/3</a></td><td></td></tr>
<tr><td valign="top"><a href="#monitor-2">monitor/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#monotonic_time-0">monotonic_time/0</a></td><td></td></tr>
<tr><td valign="top"><a href="#monotonic_time-1">monotonic_time/1</a></td><td></td></tr>
<tr><td valign="top"><a href="#os_system_time-0">os_system_time/0</a></td><td></td></tr>
<tr><td valign="top"><a href="#os_system_time-1">os_system_time/1</a></td><td></td></tr>
<tr><td valign="top"><a href="#system_flag-2">system_flag/2</a></td><td></td></tr>
<tr><td valign="top"><a href="#system_info-1">system_info/1</a></td><td></td></tr>
<tr><td valign="top"><a href="#system_time-0">system_time/0</a></td><td></td></tr>
<tr><td valign="top"><a href="#system_time-1">system_time/1</a></td><td></td></tr>
<tr><td valign="top"><a href="#time_offset-0">time_offset/0</a></td><td></td></tr>
<tr><td valign="top"><a href="#time_offset-1">time_offset/1</a></td><td></td></tr>
<tr><td valign="top"><a href="#timestamp-0">timestamp/0</a></td><td></td></tr>
<tr><td valign="top"><a href="#unique_integer-0">unique_integer/0</a></td><td></td></tr>
<tr><td valign="top"><a href="#unique_integer-1">unique_integer/1</a></td><td></td></tr>
</table>
<h2><a name="functions">Function Details</a></h2>
<h3 class="function"><a name="convert_time_unit-3">convert_time_unit/3</a></h3>
<div class="spec">
<p><tt>convert_time_unit(Time, FromUnit, ToUnit) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="monitor-2">monitor/2</a></h3>
<div class="spec">
<p><tt>monitor(Type, Item) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="monotonic_time-0">monotonic_time/0</a></h3>
<div class="spec">
<p><tt>monotonic_time() -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="monotonic_time-1">monotonic_time/1</a></h3>
<div class="spec">
<p><tt>monotonic_time(Unit) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="os_system_time-0">os_system_time/0</a></h3>
<div class="spec">
<p><tt>os_system_time() -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="os_system_time-1">os_system_time/1</a></h3>
<div class="spec">
<p><tt>os_system_time(Unit) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="system_flag-2">system_flag/2</a></h3>
<div class="spec">
<p><tt>system_flag(Flag, Value) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="system_info-1">system_info/1</a></h3>
<div class="spec">
<p><tt>system_info(Item) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="system_time-0">system_time/0</a></h3>
<div class="spec">
<p><tt>system_time() -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="system_time-1">system_time/1</a></h3>
<div class="spec">
<p><tt>system_time(Unit) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="time_offset-0">time_offset/0</a></h3>
<div class="spec">
<p><tt>time_offset() -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="time_offset-1">time_offset/1</a></h3>
<div class="spec">
<p><tt>time_offset(Unit) -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="timestamp-0">timestamp/0</a></h3>
<div class="spec">
<p><tt>timestamp() -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="unique_integer-0">unique_integer/0</a></h3>
<div class="spec">
<p><tt>unique_integer() -&gt; any()</tt></p>
</div>
<h3 class="function"><a name="unique_integer-1">unique_integer/1</a></h3>
<div class="spec">
<p><tt>unique_integer(Modifiers) -&gt; any()</tt></p>
</div>
<hr>
<div class="navbar"><a name="#navbar_bottom"></a><table width="100%" border="0" cellspacing="0" cellpadding="2" summary="navigation bar"><tr><td><a href="overview-summary.html" target="overviewFrame">Overview</a></td><td><a href="http://www.process-one.net" target="_top"><img src="logo_p1.png" align="right" border="0" alt="Logo"></a></td></tr></table></div>
<p><i>Generated by EDoc, Dec 17 2015, 23:20:00.</i></p>
</body>
</html>
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
html {
-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0;padding:40px;}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}
html {
font-family: sans-serif;
}
body {
background: #000;
margin: 0;
padding: 1em;
line-height: 1.25em;
}
body.mainpane {
background: #fff
}
body > ul {
background: #ffc none repeat scroll 0% 0%;
padding: 30px;
}
body > ul > li a {
color: #555;
}
li {
margin-bottom: 15px;
}
.index li {
margin-left: 30px;
margin-bottom: 0;
color: #888;
list-style-type: decimal;
}
a {
text-decoration: none;
}
a:not([name]):hover,
a:not([name]):active {
text-decoration: underline;
}
h2,h3 {
margin-top: 2em;
margin-bottom: 0.5em;
}
hr {
height: 0px;
border: 0px;
}
tt {
color: #5B6380;
font-size: 1em !important;
font-family: monospace,monospace !important;
}
p > tt {
color:green;
font-family: monospace,monospace !important;
font-size: 1em !important;
}
table td {
padding:15px;
}
body > table tr:nth-child(odd) {
background:#E7E7E7 !important;
border:0px !important;
}
frame:nth-child(1) {
background:#161518 !important;
}
frame:nth-child(2) {
background:#F3F3F3 none repeat scroll 0% 0% !important;
}
pre {
background: #F3F3F3;
border: 1px solid #DDD;
padding: 10px;
border-left: 5px solid #B02539;
}
code {
background: #eee;
border: 1px solid #ddd;
margin: 3px;
padding: 1px 3px;
font-size: 1em !important;