--- Urlader/urlib.c 2012/01/06 07:56:36 1.3 +++ Urlader/urlib.c 2012/01/09 14:13:54 1.5 @@ -23,7 +23,7 @@ #define u_mkdir(path) !CreateDirectory (path, NULL) #define u_chdir(path) !SetCurrentDirectory (path) #define u_rename(fr,to) !MoveFile (fr, to) - #define u_open(path) CreateFile (path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, NULL) + #define u_open(path) CreateFile (path, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, NULL) #define u_creat(path,exec) CreateFile (path, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, NULL) #define u_creat(path,exec) CreateFile (path, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, NULL) #define u_close(handle) CloseHandle (handle) @@ -33,7 +33,7 @@ #define u_fsync(handle) FlushFileBuffers (handle) #define u_sync() - #define u_lockfile(path) CreateFile (path, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL) + #define u_lockfile(path) CreateFile (path, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL) #define u_cloexec(handle) #else @@ -116,14 +116,16 @@ return 0; #ifdef _WIN32 - HANDLE handle = CreateFileMapping (0, 0, PAGE_READWRITE, 0, size, NULL); + { + HANDLE handle = CreateFileMapping (0, 0, PAGE_READWRITE, 0, size, NULL); - addr = 0; - if (handle) - { - addr = MapViewOfFile (handle, FILE_MAP_WRITE, 0, 0, size); - CloseHandle (handle); - } + addr = 0; + if (handle) + { + addr = MapViewOfFile (handle, FILE_MAP_WRITE, 0, 0, size); + CloseHandle (handle); + } + } #elif defined (MAP_ANONYMOUS) addr = mmap (0, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);