Message168566
I propose a fix:
static FILE *
open_exclusive(char *filename, mode_t mode)
{
#if defined(O_EXCL)&&defined(O_CREAT)&&defined(O_WRONLY)&&defined(O_TRUNC)
/* Use O_EXCL to avoid a race condition when another process tries to
write the same file. When that happens, our open() call fails,
which is just fine (since it's only a cache).
XXX If the file exists and is writable but the directory is not
writable, the file will never be written. Oh well.
*/
int fd;
(void) unlink(filename);
fd = open(filename, O_EXCL|O_CREAT|O_WRONLY|O_TRUNC
#ifdef O_BINARY
|O_BINARY /* necessary for Windows */
#endif
#ifdef __VMS
, mode, "ctxt=bin", "shr=nil"
#elif defined(MS_WINDOWS)
, mode | _S_IWRITE
#else
, mode
#endif
);
if (fd < 0 )
return NULL;
return fdopen(fd, "wb");
#else
/* Best we can do -- on Windows this can't happen anyway */
return fopen(filename, "wb");
#endif
}
----------------------
so doesn't matter what the .py file permission is under windows, the .pyc file will always have both read and write permissions. |
|
Date |
User |
Action |
Args |
2012-08-19 12:50:38 | kevin.chen | set | recipients:
+ kevin.chen, barry, amaury.forgeotdarc, pitrou, eric.araujo, brian.curtin, pdsimanyi, markon, mucisland, Steve.Thompson, desolat |
2012-08-19 12:50:38 | kevin.chen | set | messageid: <1345380638.34.0.173578427079.issue6074@psf.upfronthosting.co.za> |
2012-08-19 12:50:17 | kevin.chen | link | issue6074 messages |
2012-08-19 12:50:16 | kevin.chen | create | |
|