def __enter__(self): task = id(Tasklet.current()) if self.locked_by and self.locked_by == task: self.depth += 1 return self Lock.__enter__(self) self.locked_by = task self.depth = 0 return self