Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Improve clarity in the Win32 VFS for lsm1. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
9c7a9e805d95d3d4a3f7e2d608280b7c |
User & Date: | mistachkin 2017-07-07 16:46:08.188 |
Context
2017-07-07
| ||
17:43 | Add new PRAGMAs: "function_list", "module_list", and "pragma_list". All are enclosed within #ifdef SQLITE_INTROSPECTION_PRAGMAS. The compile-time option is not on ctime.c yet, since these are still experimental and one can always test "PRAGMA pragma_list" and see whether or not it returns an empty set. (check-in: e0b6ae92ad user: drh tags: trunk) | |
16:46 | Improve clarity in the Win32 VFS for lsm1. (check-in: 9c7a9e805d user: mistachkin tags: trunk) | |
16:29 | Add support for LSM_DEBUG_MEM to the MSVC makefile for lsm1. (check-in: 3340de83df user: mistachkin tags: trunk) | |
Changes
Changes to ext/lsm1/lsm_win32.c.
︙ | ︙ | |||
43 44 45 46 47 48 49 | LPVOID pMap; /* Pointer to mapping of file fd */ size_t nMap; /* Size of mapping at pMap in bytes */ int nShm; /* Number of entries in ahShm[]/apShm[] */ LPHANDLE ahShm; /* Array of handles for shared mappings */ LPVOID *apShm; /* Array of 32K shared memory segments */ }; | | | | | | 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | LPVOID pMap; /* Pointer to mapping of file fd */ size_t nMap; /* Size of mapping at pMap in bytes */ int nShm; /* Number of entries in ahShm[]/apShm[] */ LPHANDLE ahShm; /* Array of handles for shared mappings */ LPVOID *apShm; /* Array of 32K shared memory segments */ }; static char *win32ShmFile(Win32File *pWin32File){ char *zShm; int nName = strlen(pWin32File->zName); zShm = (char *)lsmMallocZero(pWin32File->pEnv, nName+4+1); if( zShm ){ memcpy(zShm, pWin32File->zName, nName); memcpy(&zShm[nName], "-shm", 5); } return zShm; } static int win32Sleep(int us){ Sleep((us + 999) / 1000); |
︙ | ︙ | |||
375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 | return rc; } static int lsmWin32OsSectorSize(lsm_file *pFile){ return 512; } static int lsmWin32OsRemap( lsm_file *pFile, lsm_i64 iMin, void **ppOut, lsm_i64 *pnOut ){ Win32File *pWin32File = (Win32File *)pFile; /* If the file is between 0 and 2MB in size, extend it in chunks of 256K. ** Thereafter, in chunks of 1MB at a time. */ const int aIncrSz[] = {256*1024, 1024*1024}; int nIncrSz = aIncrSz[iMin>(2*1024*1024)]; | > > > > > > > > > > > > < < | | | < < | < | 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 | return rc; } static int lsmWin32OsSectorSize(lsm_file *pFile){ return 512; } static void win32Unmap(Win32File *pWin32File){ if( pWin32File->pMap!=NULL ){ UnmapViewOfFile(pWin32File->pMap); pWin32File->pMap = NULL; pWin32File->nMap = 0; } if( pWin32File->hMap!=NULL ){ CloseHandle(pWin32File->hMap); pWin32File->hMap = NULL; } } static int lsmWin32OsRemap( lsm_file *pFile, lsm_i64 iMin, void **ppOut, lsm_i64 *pnOut ){ Win32File *pWin32File = (Win32File *)pFile; /* If the file is between 0 and 2MB in size, extend it in chunks of 256K. ** Thereafter, in chunks of 1MB at a time. */ const int aIncrSz[] = {256*1024, 1024*1024}; int nIncrSz = aIncrSz[iMin>(2*1024*1024)]; *ppOut = NULL; *pnOut = 0; win32Unmap(pWin32File); if( iMin>=0 ){ LARGE_INTEGER fileSize; DWORD dwSizeHigh; DWORD dwSizeLow; HANDLE hMap; LPVOID pMap; memset(&fileSize, 0, sizeof(LARGE_INTEGER)); |
︙ | ︙ | |||
755 756 757 758 759 760 761 | #define MX_CLOSE_ATTEMPT 3 static int lsmWin32OsClose(lsm_file *pFile){ int rc; int nRetry = 0; Win32File *pWin32File = (Win32File *)pFile; lsmWin32OsShmUnmap(pFile, 0); | < < < | < < < < < | 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 | #define MX_CLOSE_ATTEMPT 3 static int lsmWin32OsClose(lsm_file *pFile){ int rc; int nRetry = 0; Win32File *pWin32File = (Win32File *)pFile; lsmWin32OsShmUnmap(pFile, 0); win32Unmap(pWin32File); do{ if( pWin32File->hFile==NULL ){ rc = LSM_IOERR_BKPT; break; } rc = CloseHandle(pWin32File->hFile); if( rc ){ |
︙ | ︙ |