Skip to content
juhgiyo edited this page Jul 5, 2012 · 4 revisions

NoLock Usage

Linking

#include "epl.h"
using namespace epl;

Usage

  1. Usage is same as CriticalSectionEx
  2. HOWEVER whichever NoLock function you call, locking will NOT occur.
  3. This class is more like a place holder for different policy of mutual exclusion. (Please see the example below.)

Example

typedef enum _mutualExclusionPolicy
{
   MULTI_PROCESS=0,
   MULTI_THREAD,
   SINGLE_THREAD
}MutualExclusionPolicy;
...
class SomeClass
{
   ...
private:
   BaseLock *m_lock; // Lock pointer  
};
...

SomeClass::SomeClass(MutalExclusionPolicy policy)
{
   switch(policy)
   {
   case MULTI_PROCESS:
      m_lock=new Mutex();
      break;
   case MULTI_THREAD:
      m_lock=new CriticalSectionEx();
      break;
   case SINGLE_THREAD:
      m_lock=new NoLock();
      break;
   }
}
...
void SomeClass::SomeFunc()
{
   LockObj(m_lock); // Mutual Exclusion when policy is NOT SINGLE_THREAD
   ...
}
Clone this wiki locally