Dequeues the next available entry on the queue and copies it into the given data pointer.
A pointer to the data memory region in which to copy the next entry data on the queue. If this parameter is 0 (NULL), it will simply move to the next entry.
A pointer to the size of the data parameter. On return, this contains the size of the actual entry data - even if the original size was not large enough.
Returns true on success and false on failure. Typically failure means that the queue is empty.
This function will dequeue the next available entry on the queue. If a data pointer is provided, it will copy the data into the memory region if there is enough space available as specified in the dataSize parameter. If no data pointer is provided, it will simply move the head value past the current entry.