parameters: (self, node)
return_statement: return False
docstring: This method is called from multiple threads in a parallel build,
          so only do thread safe stuff here. Do thread unsafe stuff in
          built().
  
          Note that there's a special trick here with the execute flag
          (one that's not normally done for other actions).  Basically
          if the user requested a no_exec (-n) build, then
          SCons.Action.execute_actions is set to 0 and when any action
          is called, it does its showing but then just returns zero
          instead of actually calling the action execution operation.
          The problem for caching is that if the file does NOT exist in
          cache then the CacheRetrieveString won't return anything to
          show for the task, but the Action.__call__ won't call
          CacheRetrieveFunc; instead it just returns zero, which makes
          the code below think that the file *was* successfully
          retrieved from the cache, therefore it doesn't do any
          subsequent building.  However, the CacheRetrieveString didn't
          print anything because it didn't actually exist in the cache,
          and no more build actions will be performed, so the user just
          sees nothing.  The fix is to tell Action.__call__ to always
          execute the CacheRetrieveFunc and then have the latter
          explicitly check SCons.Action.execute_actions itself.
docstring_summary: This method is called from multiple threads in a parallel build,
          so only do thread safe stuff here. Do thread unsafe stuff in
          built().
docstring_tokens: This method is called from multiple threads in a parallel build so only do thread safe stuff here . Do thread unsafe stuff in built () .
function: def retrieve(self, node):
          """
          This method is called from multiple threads in a parallel build,
          so only do thread safe stuff here. Do thread unsafe stuff in
          built().
  
          Note that there's a special trick here with the execute flag
          (one that's not normally done for other actions).  Basically
          if the user requested a no_exec (-n) build, then
          SCons.Action.execute_actions is set to 0 and when any action
          is called, it does its showing but then just returns zero
          instead of actually calling the action execution operation.
          The problem for caching is that if the file does NOT exist in
          cache then the CacheRetrieveString won't return anything to
          show for the task, but the Action.__call__ won't call
          CacheRetrieveFunc; instead it just returns zero, which makes
          the code below think that the file *was* successfully
          retrieved from the cache, therefore it doesn't do any
          subsequent building.  However, the CacheRetrieveString didn't
          print anything because it didn't actually exist in the cache,
          and no more build actions will be performed, so the user just
          sees nothing.  The fix is to tell Action.__call__ to always
          execute the CacheRetrieveFunc and then have the latter
          explicitly check SCons.Action.execute_actions itself.
          """
          if not self.is_enabled():
              return False
  
          env = node.get_build_env()
          if cache_show:
              if CacheRetrieveSilent(node, [], env, execute=1) == 0:
                  node.build(presub=0, execute=0)
                  return True
          else:
              if CacheRetrieve(node, [], env, execute=1) == 0:
                  return True
  
          return False
function_tokens: def retrieve ( self , node ) : if not self . is_enabled ( ) : return False env = node . get_build_env ( ) if cache_show : if CacheRetrieveSilent ( node , [ ] , env , execute = 1 ) == 0 : node . build ( presub = 0 , execute = 0 ) return True else : if CacheRetrieve ( node , [ ] , env , execute = 1 ) == 0 : return True return False