[Vm-dev] [commit][2726] Ugh. Make the !defined(SA_NODEFER) compare-and-swap code comprehensible (i hope).

commits at squeakvm.org commits at squeakvm.org
Thu Apr 25 18:39:00 UTC 2013


Revision: 2726
Author:   eliot
Date:     2013-04-25 11:38:59 -0700 (Thu, 25 Apr 2013)
Log Message:
-----------
Ugh.  Make the !defined(SA_NODEFER) compare-and-swap code comprehensible (i hope).

Modified Paths:
--------------
    branches/Cog/platforms/unix/vm/sqUnixITimerHeartbeat.c
    branches/Cog/platforms/unix/vm/sqUnixITimerTickerHeartbeat.c

Modified: branches/Cog/platforms/unix/vm/sqUnixITimerHeartbeat.c
===================================================================
--- branches/Cog/platforms/unix/vm/sqUnixITimerHeartbeat.c	2013-04-25 18:34:40 UTC (rev 2725)
+++ branches/Cog/platforms/unix/vm/sqUnixITimerHeartbeat.c	2013-04-25 18:38:59 UTC (rev 2726)
@@ -350,10 +350,10 @@
 heartbeat_handler(int sig, struct siginfo *sig_info, void *context)
 {
 #if !defined(SA_NODEFER)
-  {	int zeroAndPreviousHandlingHeartbeat = 0;
-    sqCompareAndSwapRes(handling_heartbeat,zeroAndPreviousHandlingHeartbeat,
-						1,zeroAndPreviousHandlingHeartbeat);
-	if (zeroAndPreviousHandlingHeartbeat)
+  {	int zero = 0;
+	int previouslyHandlingHeartbeat;
+    sqCompareAndSwapRes(handling_heartbeat,zero,1,previouslyHandlingHeartbeat);
+	if (previouslyHandlingHeartbeat)
 		return;
   }
 

Modified: branches/Cog/platforms/unix/vm/sqUnixITimerTickerHeartbeat.c
===================================================================
--- branches/Cog/platforms/unix/vm/sqUnixITimerTickerHeartbeat.c	2013-04-25 18:34:40 UTC (rev 2725)
+++ branches/Cog/platforms/unix/vm/sqUnixITimerTickerHeartbeat.c	2013-04-25 18:38:59 UTC (rev 2726)
@@ -480,10 +480,10 @@
 	}
 
 #if !defined(SA_NODEFER)
-  {	int zeroAndPreviousHandlingHeartbeat = 0;
-    sqCompareAndSwapRes(handling_heartbeat,zeroAndPreviousHandlingHeartbeat,
-						1,zeroAndPreviousHandlingHeartbeat);
-	if (zeroAndPreviousHandlingHeartbeat)
+  {	int zero = 0;
+	int previouslyHandlingHeartbeat;
+    sqCompareAndSwapRes(handling_heartbeat,zero,1,previouslyHandlingHeartbeat);
+	if (previouslyHandlingHeartbeat)
 		return;
   }
 



More information about the Vm-dev mailing list