On 5/19/21 10:51 PM, David Lloyd wrote: > I think it would be really nice if the snapshot class could hold its > run/call method rather than making it a static method of `ScopeLocal`. This > reads more naturally to me (and is nicer to write):
True, but inheritance is *extremely* time-critical when creating a ForkJoin task. In many cases there won't be any scope locals to inherit, and by allowing null snapshots you save a significant fraction of a nanosecond when creating one. And I know, this is hard to believe, but such an overhead has a significant macroscopic effect on benchmarks. However, I do intend to fix this in a different way, if I can. -- Andrew Haley (he/him) Java Platform Lead Engineer Red Hat UK Ltd. <https://www.redhat.com> https://keybase.io/andrewhaley EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671