code: def Value(typecode_or_type, *args, lock=True, ctx=None):
      """
      Return a synchronization wrapper for a Value
      """
      obj = RawValue(typecode_or_type, *args)
      if lock is False:
          return obj
      if lock in (True, None):
          ctx = ctx or get_context()
          lock = ctx.RLock()
      if not hasattr(lock, "acquire"):
          raise AttributeError("%r has no method 'acquire'" % lock)
      return synchronized(obj, lock, ctx=ctx)
  
imports: import ctypes
  import weakref
  from .None import heap
  from .None import get_context
  from .context import reduction, assert_spawning
label_desc: Use image node_id 4 for calling a global function with example usage: Value(typecode_or_type) and returns: synchronized, obj