Discussions of the Parallel Programming book
 help / color / mirror / Atom feed
* [Q] READ_ONCE(x)++
@ 2016-12-29  2:54 Akira Yokosawa
  2016-12-29  3:43 ` Paul E. McKenney
  0 siblings, 1 reply; 2+ messages in thread
From: Akira Yokosawa @ 2016-12-29  2:54 UTC (permalink / raw)
  To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa

Hi Paul,

As I'm not so familiar with Linux kernel programming,
I found the following hunk in commit 7945ae1a06c5 difficult to grasp at first glance.

@@ -564,7 +584,7 @@ the other will wait until the first thread releases the lock.
  38     exit(-1);
  39   }
  40   for (i = 0; i < 3; i++) {
- 41     ACCESS_ONCE(x)++;
+ 41     READ_ONCE(x)++;
  42     poll(NULL, 0, 5);
  43   }
  44   if (pthread_mutex_unlock(pmlp) != 0) {

"The name READ_ONCE() seems to imply it is used for read access, but what
happens when it is used with a "++" operator?" was what I thought.

"ACCESS_ONCE(x)++" was already somewhat confusing for me.

Once you know its definition, you can see there is no problem. But it still
looks strange...

Don't kernel programmers feel strangeness in "READ_ONCE(x)++"?

This is just a random question. But if you could add some explanation of the
usage, that would be of help for novice programmers.

                                            Thanks, Akira


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-12-29  3:43 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-12-29  2:54 [Q] READ_ONCE(x)++ Akira Yokosawa
2016-12-29  3:43 ` Paul E. McKenney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox