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.
>
>

Reply via email to