I was wondering about that method the other day... Now, you made it clear: crap!
2013/4/14 Igor Stasenko <siguc...@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. > >