Is it atomic?

The preceding discussion on the necessity for atomic execution of a critical section might make you, the programmer, apprehensive: perhaps you are wondering, how does one recognize a critical section? Well, that's easy: if you have the potential for parallelism (multiple threads can run through the code path in parallel) and the code path is working on some shared resource (usually global or static data), then you have a critical section, implying that you will protect it via locking.

A quick thumb rule: in the majority of cases, multiple threads will be running through code paths. Thus, in a general sense, the mere presence of some writable shared resource of any sort—a global, a static, an IPC shared-memory region, (even) ...

Get Hands-On System Programming with Linux now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.