code: def acquire(self, blocking=False):
      val = memcache.add(self.name, "L", 360, namespace="whooshlocks")
  
      if blocking and not val:
          # Simulate blocking by retrying the acquire over and over
          import time
  
          while not val:
              time.sleep(0.1)
              val = memcache.add(
                  self.name, "", 360, namespace="whooshlocks"
              )
  
      return val
  
imports: import time
  from google.appengine.api import memcache
  from google.appengine.ext import db
  from whoosh.compat import BytesIO
  from whoosh.index import TOC, FileIndex, _DEF_INDEX_NAME
  from whoosh.filedb.filestore import ReadOnlyError, Storage
  from whoosh.filedb.structfile import StructFile
label_desc: Use image node_id 2 for calling the MemcacheLock obj's underlying member method code with example usage: obj.acquire(blocking) and returns: val