diff -r 43e37759235e -r 51a74ef9ed63 Symbian3/SDK/Source/GUID-3829BD20-3DCB-5489-8FC4-07F954E391BF.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/SDK/Source/GUID-3829BD20-3DCB-5489-8FC4-07F954E391BF.dita Wed Mar 31 11:11:55 2010 +0100 @@ -0,0 +1,40 @@ + + + + + +Local +and global handlesThis document explains the distinction between local and global +handles. +

This is the issue of Kernel side object visibility.

+

Handles are said to be local or global.

+

A handle is local, if the Kernel object which that handle represents +is only visible to the thread that created it; no other thread can open a +handle to the same Kernel object.

+

Typically, code constructs the appropriate RHandleBase derived +object, e.g. an RMutex, and calls its Create(), CreateLocal() or +equivalent function to create the corresponding Kernel object.

+

A handle is global, if the Kernel object which that handle represents +is visible to all threads across all processes; any thread in any process +can open a handle to that same Kernel object. Typically, such a Kernel object +is intended for sharing.

+

For a global handle. the corresponding Kernel object is assigned a name. +The name gives that Kernel object an identity and is the key property which +allows other threads to open a handle onto that same object. It is usual to +use a TFindHandleBase derived class to locate a global +Kernel object. The following diagram shows the general idea.

+ + + +

See also:

+ +
\ No newline at end of file