<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def delete_direct(self, addresses):
 """Called in the context manager's delete method to either mark an entry for deletion , or create a new future and immediately set it for deletion in the future. Args: address_list (list of str):
 The unique full addresses. Raises: AuthorizationException """


        with self._lock:
            for address in addresses:
                self._validate_write(address)
                if address in self._state:
                    self._state[address].set_deleted()
                else:
                    fut = _ContextFuture(address=address)
                    self._state[address] = fut
                    fut.set_deleted()