Django1.1 file based session backend multi-threaded solution
- by Satoru.Logic
Hi, all.
I read django.contrib.sessions.backend.file today, in the save method of SessionStore there is something as the following that's used to achieve multi-threaded saving integrity:
        output_file_fd, output_file_name = tempfile.mkstemp(dir=dir,
            prefix=prefix + '_out_')
        renamed = False
        try:
            try:
                os.write(output_file_fd, self.encode(session_data))
            finally:
                os.close(output_file_fd)
            os.rename(output_file_name, session_file_name)
            renamed = True
        finally:
            if not renamed:
                os.unlink(output_file_name)
I don't quite understand how this solve the integrity problem.