'@param delay: how long from now before the data gets saved to disk, or `None\' in order to use the default value provided in the constructor'

def lazy_save(self, delay=None):

    if (delay is None):
        delay = self._DELAY
    self._store_attrs_in_extres()
    newsavetask = twistedutil.callLater_weakly(delay, self._save_to_disk)
    if self._extres.savertask:
        if (self._extres.savertask.callId.getTime() < newsavetask.callId.getTime()):
            try:
                newsavetask.callId.cancel()
            except:
                pass
        else:
            try:
                self._extres.savertask.callId.cancel()
            except:
                pass
            self._extres.savertask = newsavetask
    else:
        self._extres.savertask = newsavetask
