test_and_clear_bit - Clear a bit and return its old value
int test_and_clear_bit (int nr, volatile unsigned long * addr);
nr Bit to clear addr Address to count from
This operation is atomic and cannot be reordered. It can be reorderdered on other architectures other than x86. It also implies a memory barrier.