Difference between pages "r7.0.0:Macro LFDS700 QUEUE GET VALUE FROM ELEMENT" and "r7.0.0:Macro LFDS700 QUEUE SET KEY IN ELEMENT"
(Difference between pages)
Jump to navigation
Jump to search
Line 1: | Line 1: | ||
{{DISPLAYTITLE:macro | {{DISPLAYTITLE:macro LFDS700_QUEUE_SET_KEY_IN_ELEMENT}} | ||
==Source Files== | ==Source Files== | ||
└───liblfds700 | └───liblfds700 | ||
Line 10: | Line 10: | ||
==Macro== | ==Macro== | ||
#define | #define LFDS700_QUEUE_SET_KEY_IN_ELEMENT( queue_element, new_key ) | ||
==Parameters== | ==Parameters== | ||
''queue_element'' | ''queue_element'' | ||
: A ''struct lfds700_queue_element''. Not a pointer to it - the struct itself. | : A ''struct lfds700_queue_element'', which is not currently part of a freelist. Not a pointer to it - the struct itself. | ||
''new_key'' | |||
: A pointer, which will be cast by the macro to a ''void *'', which the key in ''queue_element'' is set to. | |||
==Return Value== | ==Return Value== | ||
No return value. | |||
==Notes== | ==Notes== | ||
The | The key in a queue element can only be set when the element is outside of a queue (i.e. has been dequeued, or has yet to be enqueued). This macro can be called at any time, but if it is used on an element which is present in a queue, all bets are off - all threads on the logical core which does this will see the change, but there is no guarantee any other logical cores will ever see the change. You were warned. | ||
As with all ''liblfds'' macros, the macro operates on the structure itself, not a pointer to it. | |||
The key is not used in any way by the queue, and is provided for convenience when moving keys and values between different data structures. | |||
==Example== | ==Example== | ||
Line 31: | Line 34: | ||
==See Also== | ==See Also== | ||
* [[r7.0.0:Queue|Queue]] | * [[r7.0.0:Queue|Queue]] | ||
* ''[[r7.0.0:macro | * ''[[r7.0.0:macro LFDS700_QUEUE_GET_KEY_FROM_ELEMENT|LFDS700_QUEUE_GET_KEY_FROM_ELEMENT]]'' |
Latest revision as of 01:58, 30 December 2015
Source Files
└───liblfds700 └───inc └───liblfds700 lfds700_queue.h
Opaque Structures
struct lfds700_queue_element;
Macro
#define LFDS700_QUEUE_SET_KEY_IN_ELEMENT( queue_element, new_key )
Parameters
queue_element
- A struct lfds700_queue_element, which is not currently part of a freelist. Not a pointer to it - the struct itself.
new_key
- A pointer, which will be cast by the macro to a void *, which the key in queue_element is set to.
Return Value
No return value.
Notes
The key in a queue element can only be set when the element is outside of a queue (i.e. has been dequeued, or has yet to be enqueued). This macro can be called at any time, but if it is used on an element which is present in a queue, all bets are off - all threads on the logical core which does this will see the change, but there is no guarantee any other logical cores will ever see the change. You were warned.
As with all liblfds macros, the macro operates on the structure itself, not a pointer to it.
The key is not used in any way by the queue, and is provided for convenience when moving keys and values between different data structures.
Example
Coming soon. No, really! (Written 29th Dec 2015).