Is the XBee Programmable built-in ZDO/ZCL support thread-safe? Specifically if you define an attribute in
// in zcl_attribute_base_t:
/// Pointer to global variable of correct type, set as \c const to allow
/// for both const and non-const values. (If \c const, flags should be
/// include #ZCL_ATTRIB_FLAG_READONLY.) If NULL, the ZCL stack will
/// respond to attempts to read/write with ZCL_STATUS_DEFINED_OUT_OF_BAND.
const void FAR *value;
I'm asking in the event that the attribute is say 32 bits. What do I need to do to ensure that it's returned atomically?
One specific example I have is a 32-bit event counter. It can incremented from my foreground (main state machine) or from a GPIO interrupt. When I access it from the foreground state machine I turn some interrupts off first. What I don't really understand (and the root of this question) is interaction and thread safety issues within the ZDO/ZCL code e.g. the "general" handler.