cru_free_partition - free the memory used by a graph partition
#include <cru/cru.h>
void cru_free_partition ( cru_partition p , int now , int *err )
This function is part of a simple and efficient API for manipulating sets of vertices. The parameter p models a partition on the vertices in a graph, which is a set of classes such that each vertex belongs to exactly one class. The partition is expected to have been obtained from a prior invocation of cru_partition_of. This function reclaims the memory allocated at that time.
If a non-zero value is passed in the parameter now, then the caller is blocked until the reclamation completes. Otherwise the reclamation proceeds concurrently and the function returns immediately. In either case, the operation is single threaded.
For purposes of memory management, the partition p is consumed by this function and must not be accessed afterwards.
none
To avoid a memory leak, this function must be called for each partition before it goes out of scope. Memory leaks are an error but are not detected or reported.
Any attempted use of a partition previously passed to this function is an error with unpredictable consequences.
The err parameter is used to report any events preventing successful completion of the requested operation to the caller. If *err is zero on entry and the operation does not succeed, then *err is assigned a non-zero number. Positive numbers are for POSIX or user-defined error codes, and negative numbers down to -CRU_MAX_ERR are specific to cru.
Values of *err listed below refer to errors that are detected and handled. Unlisted values in the range of -CRU_INT_ERR through -CRU_MAX_ERR likely indicate internal errors attributable to bugs in cru. Any other unlisted values may indicate memory corruption or invalid usage of the API.
ENOMEM
There is insufficient memory to start a background thread, so the partition is freed sequentially instead.
CRU_BADPRT
The parameter p refers to a corrupted or invalid cru_partition.
Freeing a partition sequentially is worthwhile when followed by an operation that otherwise would run the risk of causing a heap overflow.
/usr/local/include/cru/cru.h
/usr/local/include/cru/data_types.h
/usr/local/include/cru/error_codes.h
cru, cru_bop, cru_bpred, cru_builder, cru_built, cru_cbop, cru_classifier, cru_class_of, cru_class_size, cru_composed, cru_composer, cru_connect, cru_connector, cru_cqop, cru_crossed, cru_crosser, cru_ctop, cru_ctop_pair, cru_ctop_quad, cru_data_types, cru_deduplicated, cru_destructor, cru_destructor_pair, cru_edge_count, cru_fabricated, cru_fabricator, cru_filter, cru_filtered, cru_fold, cru_free_kill_switch, cru_free_later, cru_free_now, cru_function_types, cru_get, cru_hash, cru_induced, cru_inducer, cru_kernel, cru_kill, cru_killed, cru_mapreduced, cru_mapreducer, cru_merged, cru_merger, cru_mutated, cru_mutator, cru_new_kill_switch, cru_nop, cru_order, cru_order_pair, cru_partition_of, cru_plan, cru_postponed, cru_postponer, cru_prop, cru_prop_pair, cru_pruner, cru_qop, cru_qpred, cru_set, cru_sig, cru_singleton, cru_split, cru_splitter, cru_spread, cru_strerror, cru_stretch, cru_stretched, cru_stretcher, cru_subconnector, cru_terminus_count, cru_top, cru_tpred, cru_united, cru_uop, cru_vertex_count, cru_zone
Dennis Furey (milonga@delayinsensitive.com)
https://github.com/gueststar/cru