nicko 2005/03/04 13:11:49
Modified: src/DateFormatter AbsoluteTimeDateFormatter.cs
Log:
Added Thread.MemoryBarrier call on NET_1_1 after writing to local variable,
this is only required on SMP machines with a weak memory model (e.g. Itanium)
Revision Changes Path
1.9 +9 -1
logging-log4net/src/DateFormatter/AbsoluteTimeDateFormatter.cs
Index: AbsoluteTimeDateFormatter.cs
===================================================================
RCS file:
/home/cvs/logging-log4net/src/DateFormatter/AbsoluteTimeDateFormatter.cs,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- AbsoluteTimeDateFormatter.cs 7 Feb 2005 22:41:16 -0000 1.8
+++ AbsoluteTimeDateFormatter.cs 4 Mar 2005 21:11:48 -0000 1.9
@@ -121,8 +121,16 @@
// Calculate the new string for
this second
FormatDateWithoutMillis(dateToFormat, s_lastTimeBuf);
+ // Render the string buffer to
a string
+ string currentDateWithoutMillis
= s_lastTimeBuf.ToString();
+
+#if NET_1_1
+ // Ensure that the above string
is written into the variable NOW on all threads.
+ // This is only required on
multiprocessor machines with weak memeory models
+
System.Threading.Thread.MemoryBarrier();
+#endif
// Store the time as a string
(we only have to do this once per second)
- s_lastTimeString =
s_lastTimeBuf.ToString();
+ s_lastTimeString =
currentDateWithoutMillis;
s_lastTimeToTheSecond =
currentTimeToTheSecond;
}
}