06.08.2013 Views

Threads in the new ISO C Standard from 2011

Threads in the new ISO C Standard from 2011

Threads in the new ISO C Standard from 2011

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Test and Set Atomic Flag<br />

The type atomic_flag is <strong>the</strong> atomic type for <strong>the</strong> classic test-and-set<br />

operation.<br />

bool atomic_flag_test_and_set(<br />

volatile atomic_flag* ptr);<br />

bool atomic_flag_test_and_set_explicit(<br />

volatile atomic_flag* ptr,<br />

memory_order order);<br />

These functions set <strong>the</strong> flag if it was cleared.<br />

If it already was set, it may be written aga<strong>in</strong> but that would be a poor<br />

implementation due to cache effects if multiple processors are wait<strong>in</strong>g<br />

for <strong>the</strong> flag to be cleared.<br />

The old value is returned.<br />

Jonas Skeppstedt (js@cs.lth.se) Lecture 6 2013 18 / 70

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!