while(size--) { // part before reserved0 field
memcpy(&mData[mWritePos], ev, offsetof(sensors_event_t, reserved0)); // part after reserved0 field
memcpy(reinterpret_cast<char *>(&mData[mWritePos]) + offsetof(sensors_event_t, timestamp), reinterpret_cast<constchar *>(ev) + offsetof(sensors_event_t, timestamp), sizeof(sensors_event_t) - offsetof(sensors_event_t, timestamp)); // barrier before writing the atomic counter
std::atomic_thread_fence(std::memory_order_release);
mData[mWritePos].reserved0 = mCounter++; // barrier after writing the atomic counter
std::atomic_thread_fence(std::memory_order_release);
++ev;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.