code: def Array(
      typecode_or_type, size_or_initializer, *, lock=True, ctx=None
  ):
      """
      Return a synchronization wrapper for a RawArray
      """
      obj = RawArray(typecode_or_type, size_or_initializer)
      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 5 for calling a global function with example usage: Array(typecode_or_type, size_or_initializer) and returns: synchronized, obj