<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" href="../otp_doc.css" type="text/css"> <title>Erlang -- OTP Design Principles</title> </head> <body bgcolor="white" text="#000000" link="#0000ff" vlink="#ff00ff" alink="#ff0000"><div id="container"> <script id="js" type="text/javascript" language="JavaScript" src="../js/flipmenu/flipmenu.js"></script><script id="js2" type="text/javascript" src="../js/erlresolvelinks.js"></script><script language="JavaScript" type="text/javascript"> <!-- function getWinHeight() { var myHeight = 0; if( typeof( window.innerHeight ) == 'number' ) { //Non-IE myHeight = window.innerHeight; } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { //IE 6+ in 'standards compliant mode' myHeight = document.documentElement.clientHeight; } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { //IE 4 compatible myHeight = document.body.clientHeight; } return myHeight; } function setscrollpos() { var objf=document.getElementById('loadscrollpos'); document.getElementById("leftnav").scrollTop = objf.offsetTop - getWinHeight()/2; } function addEvent(obj, evType, fn){ if (obj.addEventListener){ obj.addEventListener(evType, fn, true); return true; } else if (obj.attachEvent){ var r = obj.attachEvent("on"+evType, fn); return r; } else { return false; } } addEvent(window, 'load', setscrollpos); //--></script><div id="leftnav"><div class="innertube"> <img alt="Erlang logo" src="../erlang-logo.png"><br><small><a href="users_guide.html">User's Guide</a><br><a href="../pdf/otp-system-documentation-5.8.4.pdf">PDF</a><br><a href="../index.html">Top</a></small><p><strong>OTP Design Principles</strong><br><strong>User's Guide</strong><br><small>Version 5.8.4</small></p> <br><a href="javascript:openAllFlips()">Expand All</a><br><a href="javascript:closeAllFlips()">Contract All</a><p><small><strong>Chapters</strong></small></p> <ul class="flipMenu" imagepath="../js/flipmenu"> <li id="no" title="Overview" expanded="false">Overview<ul> <li><a href="des_princ.html"> Top of chapter </a></li> <li title="Supervision Trees"><a href="des_princ.html#id95268">Supervision Trees</a></li> <li title="Behaviours"><a href="des_princ.html#id95633">Behaviours</a></li> <li title="Applications"><a href="des_princ.html#id95198">Applications</a></li> <li title="Releases"><a href="des_princ.html#id93686">Releases</a></li> <li title="Release Handling"><a href="des_princ.html#id93652">Release Handling</a></li> </ul> </li> <li id="no" title="Gen_Server Behaviour" expanded="false">Gen_Server Behaviour<ul> <li><a href="gen_server_concepts.html"> Top of chapter </a></li> <li title="Client-Server Principles"><a href="gen_server_concepts.html#id93570">Client-Server Principles</a></li> <li title="Example"><a href="gen_server_concepts.html#id93544">Example</a></li> <li title="Starting a Gen_Server"><a href="gen_server_concepts.html#id93506">Starting a Gen_Server</a></li> <li title="Synchronous Requests - Call"><a href="gen_server_concepts.html#id94364">Synchronous Requests - Call</a></li> <li title="Asynchronous Requests - Cast"><a href="gen_server_concepts.html#id94277">Asynchronous Requests - Cast</a></li> <li title="Stopping"><a href="gen_server_concepts.html#id92317">Stopping</a></li> <li title="Handling Other Messages"><a href="gen_server_concepts.html#id94032">Handling Other Messages</a></li> </ul> </li> <li id="no" title="Gen_Fsm Behaviour" expanded="false">Gen_Fsm Behaviour<ul> <li><a href="fsm.html"> Top of chapter </a></li> <li title="Finite State Machines"><a href="fsm.html#id87913">Finite State Machines</a></li> <li title="Example"><a href="fsm.html#id90130">Example</a></li> <li title="Starting a Gen_Fsm"><a href="fsm.html#id90098">Starting a Gen_Fsm</a></li> <li title="Notifying About Events"><a href="fsm.html#id89657">Notifying About Events</a></li> <li title="Timeouts"><a href="fsm.html#id81207">Timeouts</a></li> <li title="All State Events"><a href="fsm.html#id86440">All State Events</a></li> <li title="Stopping"><a href="fsm.html#id82394">Stopping</a></li> <li title="Handling Other Messages"><a href="fsm.html#id86173">Handling Other Messages</a></li> </ul> </li> <li id="no" title="Gen_Event Behaviour" expanded="false">Gen_Event Behaviour<ul> <li><a href="events.html"> Top of chapter </a></li> <li title="Event Handling Principles"><a href="events.html#id96013">Event Handling Principles</a></li> <li title="Example"><a href="events.html#id96061">Example</a></li> <li title="Starting an Event Manager"><a href="events.html#id94014">Starting an Event Manager</a></li> <li title="Adding an Event Handler"><a href="events.html#id95372">Adding an Event Handler</a></li> <li title="Notifying About Events"><a href="events.html#id95447">Notifying About Events</a></li> <li title="Deleting an Event Handler"><a href="events.html#id95512">Deleting an Event Handler</a></li> <li title="Stopping"><a href="events.html#id96252">Stopping</a></li> <li title="Handling Other Messages"><a href="events.html#id96298">Handling Other Messages</a></li> </ul> </li> <li id="no" title="Supervisor Behaviour" expanded="false">Supervisor Behaviour<ul> <li><a href="sup_princ.html"> Top of chapter </a></li> <li title="Supervision Principles"><a href="sup_princ.html#id96386">Supervision Principles</a></li> <li title="Example"><a href="sup_princ.html#id96409">Example</a></li> <li title="Restart Strategy"><a href="sup_princ.html#id96472">Restart Strategy</a></li> <li title="Maximum Restart Frequency"><a href="sup_princ.html#id96545">Maximum Restart Frequency</a></li> <li title="Child Specification"><a href="sup_princ.html#id96598">Child Specification</a></li> <li title="Starting a Supervisor"><a href="sup_princ.html#id96867">Starting a Supervisor</a></li> <li title="Adding a Child Process"><a href="sup_princ.html#id96972">Adding a Child Process</a></li> <li title="Stopping a Child Process"><a href="sup_princ.html#id97013">Stopping a Child Process</a></li> <li title="Simple-One-For-One Supervisors"><a href="sup_princ.html#id97059">Simple-One-For-One Supervisors</a></li> <li title="Stopping"><a href="sup_princ.html#id83212">Stopping</a></li> </ul> </li> <li id="no" title="Sys and Proc_Lib" expanded="false">Sys and Proc_Lib<ul> <li><a href="spec_proc.html"> Top of chapter </a></li> <li title="Simple Debugging"><a href="spec_proc.html#id97132">Simple Debugging</a></li> <li title="Special Processes"><a href="spec_proc.html#id97203">Special Processes</a></li> <li title="User-Defined Behaviours"><a href="spec_proc.html#id97764">User-Defined Behaviours</a></li> </ul> </li> <li id="no" title="Applications" expanded="false">Applications<ul> <li><a href="applications.html"> Top of chapter </a></li> <li title="Application Concept"><a href="applications.html#id97910">Application Concept</a></li> <li title="Application Callback Module"><a href="applications.html#id97977">Application Callback Module</a></li> <li title="Application Resource File"><a href="applications.html#id98091">Application Resource File</a></li> <li title="Directory Structure"><a href="applications.html#id98340">Directory Structure</a></li> <li title="Application Controller"><a href="applications.html#id98466">Application Controller</a></li> <li title="Loading and Unloading Applications"><a href="applications.html#id98499">Loading and Unloading Applications</a></li> <li title="Starting and Stopping Applications"><a href="applications.html#id98561">Starting and Stopping Applications</a></li> <li title="Configuring an Application"><a href="applications.html#id98648">Configuring an Application</a></li> <li title="Application Start Types"><a href="applications.html#id98848">Application Start Types</a></li> </ul> </li> <li id="no" title="Included Applications" expanded="false">Included Applications<ul> <li><a href="included_applications.html"> Top of chapter </a></li> <li title="Definition"><a href="included_applications.html#id98990">Definition</a></li> <li title="Specifying Included Applications"><a href="included_applications.html#id99056">Specifying Included Applications</a></li> <li title="Synchronizing Processes During Startup"><a href="included_applications.html#id99081">Synchronizing Processes During Startup</a></li> </ul> </li> <li id="no" title="Distributed Applications" expanded="false">Distributed Applications<ul> <li><a href="distributed_applications.html"> Top of chapter </a></li> <li title="Definition"><a href="distributed_applications.html#id99297">Definition</a></li> <li title="Specifying Distributed Applications"><a href="distributed_applications.html#id99333">Specifying Distributed Applications</a></li> <li title="Starting and Stopping Distributed Applications"><a href="distributed_applications.html#id99539">Starting and Stopping Distributed Applications</a></li> <li title="Failover"><a href="distributed_applications.html#id99641">Failover</a></li> <li title="Takeover"><a href="distributed_applications.html#id99783">Takeover</a></li> </ul> </li> <li id="no" title="Releases" expanded="false">Releases<ul> <li><a href="release_structure.html"> Top of chapter </a></li> <li title="Release Concept"><a href="release_structure.html#id99981">Release Concept</a></li> <li title="Release Resource File"><a href="release_structure.html#id100033">Release Resource File</a></li> <li title="Generating Boot Scripts"><a href="release_structure.html#id100173">Generating Boot Scripts</a></li> <li title="Creating a Release Package"><a href="release_structure.html#id100267">Creating a Release Package</a></li> <li title="Directory Structure"><a href="release_structure.html#id100386">Directory Structure</a></li> </ul> </li> <li id="no" title="Release Handling" expanded="false">Release Handling<ul> <li><a href="release_handling.html"> Top of chapter </a></li> <li title="Release Handling Principles"><a href="release_handling.html#id100641">Release Handling Principles</a></li> <li title="Requirements"><a href="release_handling.html#id100886">Requirements</a></li> <li title="Distributed Systems"><a href="release_handling.html#id100979">Distributed Systems</a></li> <li title="Release Handling Instructions"><a href="release_handling.html#id101005">Release Handling Instructions</a></li> <li title="Application Upgrade File"><a href="release_handling.html#id101436">Application Upgrade File</a></li> <li title="Release Upgrade File"><a href="release_handling.html#id101618">Release Upgrade File</a></li> <li title="Installing a Release"><a href="release_handling.html#id101774">Installing a Release</a></li> <li title="Updating Application Specifications"><a href="release_handling.html#id102248">Updating Application Specifications</a></li> </ul> </li> <li id="no" title="Appup Cookbook" expanded="false">Appup Cookbook<ul> <li><a href="appup_cookbook.html"> Top of chapter </a></li> <li title="Changing a Functional Module"><a href="appup_cookbook.html#id102434">Changing a Functional Module</a></li> <li title="Changing a Residence Module"><a href="appup_cookbook.html#id102457">Changing a Residence Module</a></li> <li title="Changing a Callback Module"><a href="appup_cookbook.html#id102496">Changing a Callback Module</a></li> <li title="Changing Internal State"><a href="appup_cookbook.html#id102547">Changing Internal State</a></li> <li title="Module Dependencies"><a href="appup_cookbook.html#id102681">Module Dependencies</a></li> <li title="Changing Code For a Special Process"><a href="appup_cookbook.html#id102852">Changing Code For a Special Process</a></li> <li title="Changing a Supervisor"><a href="appup_cookbook.html#id103019">Changing a Supervisor</a></li> <li title="Adding or Deleting a Module"><a href="appup_cookbook.html#id103265">Adding or Deleting a Module</a></li> <li title="Starting or Terminating a Process"><a href="appup_cookbook.html#id103290">Starting or Terminating a Process</a></li> <li title="Adding or Removing an Application"><a href="appup_cookbook.html#id103308">Adding or Removing an Application</a></li> <li title="Restarting an Application"><a href="appup_cookbook.html#id103339">Restarting an Application</a></li> <li title="Changing an Application Specification"><a href="appup_cookbook.html#id103381">Changing an Application Specification</a></li> <li title="Changing Application Configuration"><a href="appup_cookbook.html#id103405">Changing Application Configuration</a></li> <li title="Changing Included Applications"><a href="appup_cookbook.html#id103439">Changing Included Applications</a></li> <li title="Changing Non-Erlang Code"><a href="appup_cookbook.html#id103678">Changing Non-Erlang Code</a></li> <li title="Emulator Restart"><a href="appup_cookbook.html#id103763">Emulator Restart</a></li> </ul> </li> </ul> </div></div> <div id="content"> <div class="innertube"> <div class="frontpage"></div> <center><h1>OTP Design Principles User's Guide</h1></center> <center><h4>Version 5.8.4</h4></center> <center><h4>July 21 2011</h4></center> </div> <div class="footer"> <hr> <p>Copyright © 1997-2011 Ericsson AB. All Rights Reserved.</p> </div> </div> </div></body> </html>