Please rewrite it :)

Stef

On Apr 14, 2013, at 9:52 PM, Igor Stasenko <siguc...@gmail.com> wrote:

> 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