From GridLAB-D Wiki
Jump to: navigation, search

gld_rlock - Module scope read lock Template:NEW30




Scope read locks on objects may be taken using the gld_rlock class. As long as the lock is in scope, the object remain read-locked. When the lock goes out of scope the object is unlocked.


The following example implements a scope read-lock for an if-else statement, thereby avoiding multiple unlock calls for each return.

int example (int test) 
  gld_rlock _lock(my);
  // object is now read-locked
  if ( test==1 ) return 1; 
  else if ( test==2 ) return 2;
  else if ( test==3 ) return 3;
  else return 0;
  // object unlocks automatically on return


Be careful not to use general purpose accessors inside scope locks. This will cause a deadlock.


Scope locks are supported as of Hassayampa (Version 3.0).

See also