enum lfds711_queue_bmm_query

From liblfds.org
Jump to: navigation, search

Source File

└───liblfds711
    └───inc
        └───liblfds711
                lfds711_queue_bmm.h

Enum

enum lfds711_queue_umm_query
{
  LFDS711_QUEUE_BMM_QUERY_GET_POTENTIALLY_INACCURATE_COUNT,
  LFDS711_QUEUE_BMM_QUERY_SINGLETHREADED_VALIDATE
};

Values

LFDS711_QUEUE_BMM_QUERY_GET_POTENTIALLY_INACCURATE_COUNT

Counts the number of elements in the queue. Where with this queue, enqueue and dequeue operations are not guaranteed to be visible by the time the enqueue or dequeue function returns, it must then be that the count of operations can be inaccurate. If some (typically) tens of microseconds have passed since the last operation by any thread, the count will be correct.

LFDS711_QUEUE_UMM_QUERY_SINGLETHREADED_VALIDATE

Validates the queue. Additionally, if given as input a lfds711_misc_validation_info, which indicates an expected range of the number of elements in the queue, counts the number of elements in the queue 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_QUEUE_UMM_QUERY_SINGLETHREADED_GET_COUNT query) can in theory enter an infinite loop if enqueue or dequeue operations occur while the validation operation is executing. You were warned.

Notes

This enum is used by the queue query function, lfds711_queue_bmm_query.

See Also