Menu

Basic:Object:Function:Lock

SFENCE

Lock

Header:

extern SFENCEAPI enum eSFENCE_Bool SFENCECALL Object_Object_Lock(struct sObject_Object *ps_object);

Parameters:
Parameter Meaning
ps_object pointer of Object_Object
Return value:
Value Meaning
eSFENCE_Bool_True, eSFENCE_Bool_Success object was successfully locked
eSFENCE_Bool_Fail object locking failed
Description:

Lock function is used for lock an object. One thread can do a multiple lock of object. But, this thread have to call Unlock function for every called Lock function.

Example:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
enum eSFENCE_Bool Example_ThreadSetParameter(struct sUniversal_Universal *ps_universal
                                             , struct sVariable_Type *ps_value)
{

  if (Universal_Universal_Lock(ps_universal)==eSFECE_Bool_Success)
  {

    // set object parameter
    if (Universal_Universal_Set_Parameter(ps_universal, 1, "name", ps_value)
        !=eSFENCE_Bool_Success)
    {
       Universal_Universal_Lock(ps_universal);
       return eSFENCE_Bool_Fail;
    }


    Universal_Universal_Unlock(ps_universal);
    return eSFENCE_Bool_Success;
  }

  return eSFENCE_Bool_Fail;
}

Related

Wiki: Basic:Object:Function:Unlock
Wiki: Basic:Object:Functions