annotate Python/getmtime.c @ 33940:dfd07b7be407 legacy-trunk

SF bug 1061968: threads: segfault or Py_FatalError at exit PyGILState_Ensure(): The fix in 2.4a3 for bug 1010677 reintroduced thread shutdown race bug 225673. Repaired by (once again) ensuring the GIL is held whenever deleting a thread state. Alas, there's no useful test case for this shy bug. Four years ago, only Guido could provoke it, on his box, and today only Armin can provoke it on his box. I've never been able to provoke it (but not for lack of trying!). This is a critical fix for 2.3.5 too, since the fix for 1010677 got backported there already and so also reintroduced 225673. I don't intend to backport this fix. For whoever (if anyone) does, there are other thread fixes in 2.4 that need backporting too, and I bet they need to happen first for this patch to apply cleanly.
author Tim Peters <tim.peters@gmail.com>
date Mon, 08 Nov 2004 04:30:21 +0000
parents 2dea40e40d9d
children 2f3f2e32dfd9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1449
ae93ec4dd556 New files.
Guido van Rossum <guido@python.org>
parents:
diff changeset
1
ae93ec4dd556 New files.
Guido van Rossum <guido@python.org>
parents:
diff changeset
2 /* Subroutine to get the last modification time of a file */
ae93ec4dd556 New files.
Guido van Rossum <guido@python.org>
parents:
diff changeset
3
ae93ec4dd556 New files.
Guido van Rossum <guido@python.org>
parents:
diff changeset
4 /* (A separate file because this may be OS dependent) */
ae93ec4dd556 New files.
Guido van Rossum <guido@python.org>
parents:
diff changeset
5
13226
12437deb0680 Trent Mick <trentm@activestate.com>:
Fred Drake <fdrake@acm.org>
parents: 6243
diff changeset
6 #include "Python.h"
18835
2dea40e40d9d Patch #411138: Rename config.h to pyconfig.h. Closes bug #231774.
Martin v. Löwis <martin@v.loewis.de>
parents: 15978
diff changeset
7 #include "pyconfig.h"
1746
1940892d2fe3 Merge alpha100 branch back to main trunk
Guido van Rossum <guido@python.org>
parents: 1449
diff changeset
8
13226
12437deb0680 Trent Mick <trentm@activestate.com>:
Fred Drake <fdrake@acm.org>
parents: 6243
diff changeset
9 time_t
13658
f79434ee41fa Mass ANSIfication of function definitions. Doesn't cover all 'extern'
Thomas Wouters <thomas@python.org>
parents: 13267
diff changeset
10 PyOS_GetLastModificationTime(char *path, FILE *fp)
1449
ae93ec4dd556 New files.
Guido van Rossum <guido@python.org>
parents:
diff changeset
11 {
ae93ec4dd556 New files.
Guido van Rossum <guido@python.org>
parents:
diff changeset
12 struct stat st;
6243
4279f4eb210a First part of package support.
Guido van Rossum <guido@python.org>
parents: 5440
diff changeset
13 if (fstat(fileno(fp), &st) != 0)
1449
ae93ec4dd556 New files.
Guido van Rossum <guido@python.org>
parents:
diff changeset
14 return -1;
ae93ec4dd556 New files.
Guido van Rossum <guido@python.org>
parents:
diff changeset
15 else
ae93ec4dd556 New files.
Guido van Rossum <guido@python.org>
parents:
diff changeset
16 return st.st_mtime;
ae93ec4dd556 New files.
Guido van Rossum <guido@python.org>
parents:
diff changeset
17 }