<!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.9.3.1.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.9.3.1</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#id65609">Supervision Trees</a></li> <li title="Behaviours"><a href="des_princ.html#id59741">Behaviours</a></li> <li title="Applications"><a href="des_princ.html#id66345">Applications</a></li> <li title="Releases"><a href="des_princ.html#id61095">Releases</a></li> <li title="Release Handling"><a href="des_princ.html#id60860">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#id64192">Client-Server Principles</a></li> <li title="Example"><a href="gen_server_concepts.html#id61515">Example</a></li> <li title="Starting a Gen_Server"><a href="gen_server_concepts.html#id67798">Starting a Gen_Server</a></li> <li title="Synchronous Requests - Call"><a href="gen_server_concepts.html#id66815">Synchronous Requests - Call</a></li> <li title="Asynchronous Requests - Cast"><a href="gen_server_concepts.html#id62843">Asynchronous Requests - Cast</a></li> <li title="Stopping"><a href="gen_server_concepts.html#id67345">Stopping</a></li> <li title="Handling Other Messages"><a href="gen_server_concepts.html#id67435">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#id68991">Finite State Machines</a></li> <li title="Example"><a href="fsm.html#id69046">Example</a></li> <li title="Starting a Gen_Fsm"><a href="fsm.html#id69093">Starting a Gen_Fsm</a></li> <li title="Notifying About Events"><a href="fsm.html#id69273">Notifying About Events</a></li> <li title="Timeouts"><a href="fsm.html#id69352">Timeouts</a></li> <li title="All State Events"><a href="fsm.html#id69391">All State Events</a></li> <li title="Stopping"><a href="fsm.html#id69423">Stopping</a></li> <li title="Handling Other Messages"><a href="fsm.html#id69514">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#id69613">Event Handling Principles</a></li> <li title="Example"><a href="events.html#id69665">Example</a></li> <li title="Starting an Event Manager"><a href="events.html#id69706">Starting an Event Manager</a></li> <li title="Adding an Event Handler"><a href="events.html#id70832">Adding an Event Handler</a></li> <li title="Notifying About Events"><a href="events.html#id70916">Notifying About Events</a></li> <li title="Deleting an Event Handler"><a href="events.html#id70987">Deleting an Event Handler</a></li> <li title="Stopping"><a href="events.html#id71062">Stopping</a></li> <li title="Handling Other Messages"><a href="events.html#id71116">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#id71210">Supervision Principles</a></li> <li title="Example"><a href="sup_princ.html#id71235">Example</a></li> <li title="Restart Strategy"><a href="sup_princ.html#id71306">Restart Strategy</a></li> <li title="Maximum Restart Frequency"><a href="sup_princ.html#id71384">Maximum Restart Frequency</a></li> <li title="Child Specification"><a href="sup_princ.html#id71906">Child Specification</a></li> <li title="Starting a Supervisor"><a href="sup_princ.html#id72235">Starting a Supervisor</a></li> <li title="Adding a Child Process"><a href="sup_princ.html#id72349">Adding a Child Process</a></li> <li title="Stopping a Child Process"><a href="sup_princ.html#id72393">Stopping a Child Process</a></li> <li title="Simple-One-For-One Supervisors"><a href="sup_princ.html#id72443">Simple-One-For-One Supervisors</a></li> <li title="Stopping"><a href="sup_princ.html#id72567">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#id72665">Simple Debugging</a></li> <li title="Special Processes"><a href="spec_proc.html#id72749">Special Processes</a></li> <li title="User-Defined Behaviours"><a href="spec_proc.html#id73359">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#id73539">Application Concept</a></li> <li title="Application Callback Module"><a href="applications.html#id73606">Application Callback Module</a></li> <li title="Application Resource File"><a href="applications.html#id73720">Application Resource File</a></li> <li title="Directory Structure"><a href="applications.html#id73969">Directory Structure</a></li> <li title="Application Controller"><a href="applications.html#id74095">Application Controller</a></li> <li title="Loading and Unloading Applications"><a href="applications.html#id74128">Loading and Unloading Applications</a></li> <li title="Starting and Stopping Applications"><a href="applications.html#id74190">Starting and Stopping Applications</a></li> <li title="Configuring an Application"><a href="applications.html#id74278">Configuring an Application</a></li> <li title="Application Start Types"><a href="applications.html#id74477">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#id74617">Definition</a></li> <li title="Specifying Included Applications"><a href="included_applications.html#id74682">Specifying Included Applications</a></li> <li title="Synchronizing Processes During Startup"><a href="included_applications.html#id74708">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#id74921">Definition</a></li> <li title="Specifying Distributed Applications"><a href="distributed_applications.html#id74957">Specifying Distributed Applications</a></li> <li title="Starting and Stopping Distributed Applications"><a href="distributed_applications.html#id75164">Starting and Stopping Distributed Applications</a></li> <li title="Failover"><a href="distributed_applications.html#id75266">Failover</a></li> <li title="Takeover"><a href="distributed_applications.html#id75408">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#id75603">Release Concept</a></li> <li title="Release Resource File"><a href="release_structure.html#id75656">Release Resource File</a></li> <li title="Generating Boot Scripts"><a href="release_structure.html#id75803">Generating Boot Scripts</a></li> <li title="Creating a Release Package"><a href="release_structure.html#id75897">Creating a Release Package</a></li> <li title="Directory Structure"><a href="release_structure.html#id76046">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#id76299">Release Handling Principles</a></li> <li title="Requirements"><a href="release_handling.html#id76543">Requirements</a></li> <li title="Distributed Systems"><a href="release_handling.html#id76636">Distributed Systems</a></li> <li title="Release Handling Instructions"><a href="release_handling.html#id76663">Release Handling Instructions</a></li> <li title="Application Upgrade File"><a href="release_handling.html#id77177">Application Upgrade File</a></li> <li title="Release Upgrade File"><a href="release_handling.html#id77359">Release Upgrade File</a></li> <li title="Installing a Release"><a href="release_handling.html#id77515">Installing a Release</a></li> <li title="Updating Application Specifications"><a href="release_handling.html#id77986">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#id78170">Changing a Functional Module</a></li> <li title="Changing a Residence Module"><a href="appup_cookbook.html#id78193">Changing a Residence Module</a></li> <li title="Changing a Callback Module"><a href="appup_cookbook.html#id78232">Changing a Callback Module</a></li> <li title="Changing Internal State"><a href="appup_cookbook.html#id78283">Changing Internal State</a></li> <li title="Module Dependencies"><a href="appup_cookbook.html#id78417">Module Dependencies</a></li> <li title="Changing Code For a Special Process"><a href="appup_cookbook.html#id78588">Changing Code For a Special Process</a></li> <li title="Changing a Supervisor"><a href="appup_cookbook.html#id78755">Changing a Supervisor</a></li> <li title="Adding or Deleting a Module"><a href="appup_cookbook.html#id79000">Adding or Deleting a Module</a></li> <li title="Starting or Terminating a Process"><a href="appup_cookbook.html#id79026">Starting or Terminating a Process</a></li> <li title="Adding or Removing an Application"><a href="appup_cookbook.html#id79044">Adding or Removing an Application</a></li> <li title="Restarting an Application"><a href="appup_cookbook.html#id79075">Restarting an Application</a></li> <li title="Changing an Application Specification"><a href="appup_cookbook.html#id79117">Changing an Application Specification</a></li> <li title="Changing Application Configuration"><a href="appup_cookbook.html#id79141">Changing Application Configuration</a></li> <li title="Changing Included Applications"><a href="appup_cookbook.html#id79174">Changing Included Applications</a></li> <li title="Changing Non-Erlang Code"><a href="appup_cookbook.html#id79414">Changing Non-Erlang Code</a></li> <li title="Emulator Restart and Upgrade"><a href="appup_cookbook.html#id79499">Emulator Restart and Upgrade</a></li> <li title="Emulator Upgrade from pre OTP R15"><a href="appup_cookbook.html#id79575">Emulator Upgrade from pre OTP R15</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.9.3.1</h4></center> <center><h4>December 6 2012</h4></center> </div> <div class="footer"> <hr> <p>Copyright © 1997-2012 Ericsson AB. All Rights Reserved.</p> </div> </div> </div></body> </html>