Symbian3/PDK/Source/GUID-088DC096-0CC7-5510-8D71-7DAF5961A681.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-088DC096-0CC7-5510-8D71-7DAF5961A681"><title>Using Critical Sections</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>Critical sections are provided to serialise access to shared resources. They are Kernel objects and, as such, are managed by the Kernel.</p> <p>A critical section can only be used by threads within the same process; it <i>cannot</i> be used to control access to a resource shared by threads across different processes. To serialise access to a resource shared by threads across more than one process, use a mutex.</p> <p>While a critical section is used to serialise access to a general resource, it is used, typically, to serialise access to a section of re-entrant code which cannot be executed concurrently by more than one thread within a process. A critical section only allows one thread into a controlled section, forcing other threads, that try to gain access to that critical section, to wait until the first thread has exited from that section.</p> <p>Note that threads which do not attempt to gain access to the critical section are not blocked.</p> <p>A critical section is implemented using a semaphore.</p> <p>Access to a critical section object is through an <codeph>RCriticalSection</codeph> handle.</p> </conbody></concept>
    12 <concept id="GUID-088DC096-0CC7-5510-8D71-7DAF5961A681" xml:lang="en"><title>Using
       
    13 Critical Sections</title><shortdesc>This document describes how to use critical sections.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    14 <p>Critical sections are provided to serialise access to shared resources.
       
    15 They are Kernel objects and, as such, are managed by the Kernel.</p>
       
    16 <p>A critical section can only be used by threads within the same process;
       
    17 it <i>cannot</i> be used to control access to a resource shared by threads
       
    18 across different processes. To serialise access to a resource shared by threads
       
    19 across more than one process, use a mutex.</p>
       
    20 <p>While a critical section is used to serialise access to a general resource,
       
    21 it is used, typically, to serialise access to a section of re-entrant code
       
    22 which cannot be executed concurrently by more than one thread within a process.
       
    23 A critical section only allows one thread into a controlled section, forcing
       
    24 other threads, that try to gain access to that critical section, to wait until
       
    25 the first thread has exited from that section.</p>
       
    26 <p>Note that threads which do not attempt to gain access to the critical section
       
    27 are not blocked.</p>
       
    28 <p>A critical section is implemented using a semaphore.</p>
       
    29 <p>Access to a critical section object is through an <codeph>RCriticalSection</codeph> handle.</p>
       
    30 </conbody></concept>