Browse Source Download (without any required ccan dependencies)

Module:

agar

Summary:

Re-entrant Abstract Graph Algorithms

Author:

David Gibson <david@gibson.dropbear.id.au>

Dependencies:

Description:

This modules contains re-entrant versions of the graph algorithms in the aga module.

The versions in the aga module require some node-local storage. This means that the calling code:

  a) Needs to actually allocate memory per node.  That may or may
     not be natural depending on its internal representation.
  b) Multiple algorithms can't run at once (easily), since they all
     need to use the aga_node structures.

This module provides versions without those restrictions, by allocating per-node storage itself for each run, and associating those with the caller's representation of nodes via a hash table.

License:

LGPL (v2.1 or any later version)