#12002: avoid race conditions when creating directories - scripts
------------------------+---------------------------------------------------
Reporter: jdemeyer | Owner: leif
Type: defect | Status: needs_work
Priority: blocker | Milestone: sage-4.8
Component: scripts | Keywords:
Work_issues: | Upstream: N/A
Reviewer: | Author: Jeroen Demeyer
Merged: | Dependencies:
------------------------+---------------------------------------------------
Changes (by jdemeyer):
* status: needs_review => needs_work
Comment:
Replying to [comment:6 jhpalmieri]:
> We still have the possibility of a race condition, though:
> {{{
> #!python
> if os.path.isdir(TMP): # suppose TMP does not exist at this point
> shutil.rmtree(TMP)
> # but suppose by now TMP exists
> os.makedirs(TMP)
> }}}
> Instead maybe this?
> {{{
> #!python
> try:
> os.makedirs(TMP)
> except OSError:
> if os.path.isdir(TMP):
> shutil.rmtree(TMP)
> os.makedirs(TMP)
> else:
> raise
> }}}
There is still a race condition (between the `rmtree` and `makedirs`) but
I don't think this can be avoided here. But I like your code, using a
nice `try`/`except` block.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/12002#comment:7>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.