From 99dc326a0b9c7954bf40ddd574c4d501def1c343 Mon Sep 17 00:00:00 2001 From: Petr Chalupa Date: Mon, 10 Feb 2020 21:18:36 +0100 Subject: [PATCH] Fix placement and add documentation --- .../concurrent/atomic/constant_thread_local_var.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) rename lib/{ => concurrent-ruby}/concurrent/atomic/constant_thread_local_var.rb (56%) diff --git a/lib/concurrent/atomic/constant_thread_local_var.rb b/lib/concurrent-ruby/concurrent/atomic/constant_thread_local_var.rb similarity index 56% rename from lib/concurrent/atomic/constant_thread_local_var.rb rename to lib/concurrent-ruby/concurrent/atomic/constant_thread_local_var.rb index 310e865e9..dfb02999a 100644 --- a/lib/concurrent/atomic/constant_thread_local_var.rb +++ b/lib/concurrent-ruby/concurrent/atomic/constant_thread_local_var.rb @@ -1,17 +1,26 @@ require 'concurrent/atomic/abstract_thread_local_var' module Concurrent + # Has the same interface as {ThreadLocalVar} but the value can never be changed. + # The value is always the default provided to the constructor. class ConstantThreadLocalVar < AbstractThreadLocalVar + + # @note the value is always equal to default value + # @!macro thread_local_var_method_get def value default end + # @!macro thread_local_var_method_set + # @raise ArgumentError if the value is not equal to the default def value=(value) if value != default raise ArgumentError, "Constant thread local vars may not be altered" end end + # @!macro thread_local_var_method_bind + # @raise ArgumentError if the value is not equal to the default def bind(value) self.value = value if block_given? @@ -20,6 +29,7 @@ def bind(value) end protected + def allocate_storage # nothing to do end