SimGrid  3.9
Versatile Simulation of Distributed Systems
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Cursors on dynar

Macros

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

Functions

void xbt_dynar_cursor_rm (xbt_dynar_t dynar, unsigned int *const cursor)
 Removes and free the entry pointed by the cursor.

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;

Macro Definition Documentation

#define xbt_dynar_foreach (   _dynar,
  _cursor,
  _data 
)

Iterates over the whole dynar.

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

Function Documentation

void xbt_dynar_cursor_rm ( xbt_dynar_t  dynar,
unsigned int *const  cursor 
)

Removes and free the entry pointed by the cursor.

This function can be used while traversing without problem.