Skip to content

It looks possible to call the value-to-be-cached twice #60

@vemv

Description

@vemv

Related: #45

Consider the plain ruby memoization pattern:

      def foo
        @foo ||= (...)
      end

This looks thread-unsafe, because two concurrent threads which call foo for the first time at the same time could trigger the code in (...). Only one would 'win', and everything would normally from then on, but (...) has been called twice.

If that was an expensive operation, it would have been called twice (suboptimal). If it was an operation with side-effects, we might encounter actual problems.

From my understanding of memoist.rb, this doesn't seem prevented at all.

What do you think - is there room for improvement here?

Cheers - Victor

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions