enum lfds711_stack_query

From liblfds.org
Revision as of 18:11, 16 February 2017 by Admin (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Source File

└───liblfds711
    └───inc
        └───liblfds711
                lfds711_stack.h

Enum

enum lfds711_stack_query
{
  LFDS711_STACK_QUERY_SINGLETHREADED_GET_COUNT,
  LFDS711_STACK_QUERY_SINGLETHREADED_VALIDATE
};

Values

LFDS711_STACK_QUERY_SINGLETHREADED_GET_COUNT

Counts the number of elements in the stack. This query is and is only safe if performed single-threaded, i.e. that no push or pop operations occur while the count operation is executing. If push or pop operations occur, it is not merely the case that the count could be wrong - in theory, it could be possible for the count to enter an infinite loop. Don't do this.

LFDS711_STACK_QUERY_SINGLETHREADED_VALIDATE

Validates the stack. This is done by checking there are no loops. Additionally, if given as input a lfds711_misc_validation_info, which indicates an expected range of the number of elements in the stack, counts the number of elements in the stack and checks they fall within the expected range. As with count, both the loop check and the element count (which is in fact performed by issuing the LFDS711_STACK_QUERY_SINGLETHREADED_GET_COUNT query) can in theory enter an infinite loop if push or pop operations occur while the validation operation is executing. You were warned.

Notes

This enum is used by the stack query function, lfds711_stack_query.

See Also