Symbian3/PDK/Source/GUID-B1C0C5E2-DC8D-5230-8D4B-338DF619F1D2.dita
changeset 5 f345bda72bc4
parent 3 46218c8b8afa
child 14 578be2adaf3e
equal deleted inserted replaced
4:4816d766a08a 5:f345bda72bc4
     7     Nokia Corporation - initial contribution.
     7     Nokia Corporation - initial contribution.
     8 Contributors: 
     8 Contributors: 
     9 -->
     9 -->
    10 <!DOCTYPE concept
    10 <!DOCTYPE concept
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
    12 <concept xml:lang="en" id="GUID-B1C0C5E2-DC8D-5230-8D4B-338DF619F1D2"><title>Critical Sections Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><section><title>Purpose</title> <p>Synchronises exclusive access to shared resources within a single process. </p> </section> <section><title>Description</title> <p>Critical sections are typically used to serialize access to a section of re-entrant code that cannot be executed concurrently by more than one thread within a process. A critical section object only allows one thread into a controlled section, forcing other threads which attempt to gain access to that critical section to wait until the first thread has exited from that section.</p> <p>A critical section <i>cannot</i> be used to control access to a resource shared by threads across different processes. For that, use a mutex.</p> <p>Critical sections are Kernel objects and, as such, are managed by the Kernel, and accessed by user programs through handles. They are implemented using a semaphore. </p> <p>The critical section handle is provided by <xref href="GUID-FC5F1EC1-28CC-3B06-83C4-B90EF8EEBA07.dita"><apiname>RCriticalSection</apiname></xref>.</p> </section> </conbody></concept>
    12 <concept id="GUID-B1C0C5E2-DC8D-5230-8D4B-338DF619F1D2" xml:lang="en"><title>Critical
       
    13 Sections Overview</title><shortdesc>This document is an overview of critical sections.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    14 <section id="GUID-0DF94D51-F739-4CFD-85B9-4EAF994743F6"><title>Purpose</title> <p>Synchronises exclusive access to shared
       
    15 resources within a single process. </p> </section>
       
    16 <section id="GUID-B5B624CB-4EEC-4E20-A92A-C87457D68C5C"><title>Description</title> <p>Critical sections are typically used
       
    17 to serialize access to a section of re-entrant code that cannot be executed
       
    18 concurrently by more than one thread within a process. A critical section
       
    19 object only allows one thread into a controlled section, forcing other threads
       
    20 which attempt to gain access to that critical section to wait until the first
       
    21 thread has exited from that section.</p> <p>A critical section <i>cannot</i> be
       
    22 used to control access to a resource shared by threads across different processes.
       
    23 For that, use a mutex.</p> <p>Critical sections are Kernel objects and, as
       
    24 such, are managed by the Kernel, and accessed by user programs through handles.
       
    25 They are implemented using a semaphore. </p> <p>The critical section handle
       
    26 is provided by <xref href="GUID-FC5F1EC1-28CC-3B06-83C4-B90EF8EEBA07.dita"><apiname>RCriticalSection</apiname></xref>.</p> </section>
       
    27 </conbody></concept>