Defines | Functions

Cursors on dynar
[Dynar: generic dynamic array]

Defines

#define xbt_dynar_foreach(_dynar, _cursor, _data)
 Iterates over the whole dynar.

Functions

void xbt_dynar_cursor_unlock (xbt_dynar_t dynar)
 Unlocks a synchronized dynar when you want to break the traversal.

Detailed Description

Cursors are used to iterate over the structure. Never add elements to the DynArr during the traversal. To remove elements, use the xbt_dynar_cursor_rm() function.

Do not call these functions directly, but only the xbt_dynar_foreach macro.

For synchronized dynars, the dynar will be locked during the whole loop and it will get unlocked automatically if you traverse all elements. If you want to break the loop before the end, make sure to call xbt_dynar_cursor_unlock() before the break;


Define Documentation

#define xbt_dynar_foreach (   _dynar,
  _cursor,
  _data 
)

Iterates over the whole dynar.

Parameters:
_dynar what to iterate over
_cursor an integer used as cursor
_data 
Note:
An example of usage:
xbt_dynar_t dyn;
unsigned int cpt;
string *str;
xbt_dynar_foreach (dyn,cpt,str) {
  printf("Seen %s\n",str);
}

Function Documentation

void xbt_dynar_cursor_unlock ( xbt_dynar_t  dynar  ) 

Unlocks a synchronized dynar when you want to break the traversal.

This function must be used if you break the xbt_dynar_foreach loop, but shouldn't be called at the end of a regular traversal reaching the end of the elements


Back to the main Simgrid Documentation page Generated for SimGridAPI by doxygen