I was wondering about that method the other day... Now, you made it clear: crap!


2013/4/14 Igor Stasenko <siguctua@gmail.com>
the more i learn about DateAndTime the more i lean towards completely
rewriting this ... err..
crap. (yes. sorry for harsh word).

DateAndTime class>>now
is not thread-safe..

now
� � � � | nanoTicks msm |

� � � � nanoTicks := (msm := self milliSecondsSinceMidnight) * 1000000.

� � � � (LastTick < nanoTicks) ifTrue: [
� � � � � � � � LastTick := nanoTicks.
� � � � � � � � ^ self todayAtMilliSeconds: msm].

� � � � LastTickSemaphore critical: [
� � � � � � � � LastTick := �LastTick + 1.
� � � � � � � � ^ self todayAtNanoSeconds: LastTick]

Wrapping only single assignment to variable with critical section
while leaving another without it
is same as if not using critical section at all.


--
Best regards,
Igor Stasenko.