From: Dmitry Y. <di...@us...> - 2007-05-16 13:32:32
|
Build Version : T2.1.0.15815 Firebird 2.1 Beta 1 (writeBuildNum.sh,v 1.15972 2007/05/16 13:32:28 dimitr Exp ) Update of /cvsroot/firebird/firebird2/src/jrd/os/win32 In directory sc8-pr-cvs17:/tmp/cvs-serv10106 Modified Files: Tag: B2_0_Release winnt.cpp Log Message: Fixed CORE-1265. Index: winnt.cpp =================================================================== RCS file: /cvsroot/firebird/firebird2/src/jrd/os/win32/winnt.cpp,v retrieving revision 1.30.4.1 retrieving revision 1.30.4.2 diff -b -U3 -r1.30.4.1 -r1.30.4.2 --- winnt.cpp 21 Feb 2007 12:06:01 -0000 1.30.4.1 +++ winnt.cpp 16 May 2007 13:32:24 -0000 1.30.4.2 @@ -85,7 +85,7 @@ #else #ifdef SUPERSERVER static const DWORD g_dwShareFlags = FILE_SHARE_READ; // no write sharing -static const DWORD g_dwExtraFlags = FILE_FLAG_RANDOM_ACCESS; +static const DWORD g_dwExtraFlags = FILE_FLAG_RANDOM_ACCESS | FILE_FLAG_NO_BUFFERING; #else static const DWORD g_dwShareFlags = FILE_SHARE_READ | FILE_SHARE_WRITE; static const DWORD g_dwExtraFlags = FILE_FLAG_RANDOM_ACCESS; @@ -128,7 +128,7 @@ } -void PIO_close(jrd_file* main_file) +void PIO_close(jrd_file* file) { /************************************** * @@ -139,7 +139,7 @@ * Functional description * **************************************/ - for (jrd_file* file = main_file; file; file = file->fil_next) + while (file) { if (MaybeCloseFile(&file->fil_desc) || MaybeCloseFile(&file->fil_force_write_desc)) @@ -155,6 +155,10 @@ } #endif } + + jrd_file* temp = file; + file = file->fil_next; + delete temp; } } |