Changeset 13805
- Timestamp:
- 02/17/08 00:50:14 (3 months ago)
- Files:
-
- trunk/gdal/gcore/gdaldataset.cpp (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/gdal/gcore/gdaldataset.cpp
r11981 r13805 36 36 static volatile int nGDALDatasetCount = 0; 37 37 static GDALDataset ** volatile papoGDALDatasetList = NULL; 38 static GIntBig * volatile panGDALDatasetPID = NULL; 38 39 static void *hDLMutex = NULL; 39 40 … … 82 83 CPLRealloc( papoGDALDatasetList, sizeof(void *)*nGDALDatasetCount); 83 84 papoGDALDatasetList[nGDALDatasetCount-1] = this; 85 panGDALDatasetPID = (GIntBig * volatile) 86 CPLRealloc( panGDALDatasetPID, sizeof(GIntBig)*nGDALDatasetCount); 87 panGDALDatasetPID[nGDALDatasetCount-1] = CPLGetPID(); 84 88 } 85 89 … … 128 132 papoGDALDatasetList[i] = 129 133 papoGDALDatasetList[nGDALDatasetCount-1]; 134 panGDALDatasetPID[i] = 135 panGDALDatasetPID[nGDALDatasetCount-1]; 130 136 nGDALDatasetCount--; 131 137 if( nGDALDatasetCount == 0 ) … … 133 139 CPLFree( papoGDALDatasetList ); 134 140 papoGDALDatasetList = NULL; 141 CPLFree( panGDALDatasetPID ); 142 panGDALDatasetPID = NULL; 135 143 } 136 144 break; … … 1846 1854 CPLMutexHolderD( &hDLMutex ); 1847 1855 int i; 1856 GIntBig nThisPID = CPLGetPID(); 1848 1857 1849 1858 for( i = 0; i < nGDALDatasetCount; i++ ) … … 1851 1860 if( strcmp(pszFilename, 1852 1861 papoGDALDatasetList[i]->GetDescription()) == 0 1862 && nThisPID == panGDALDatasetPID[i] 1853 1863 && (eAccess == GA_ReadOnly 1854 1864 || papoGDALDatasetList[i]->GetAccess() == eAccess ) ) … … 1957 1967 1958 1968 poDS->Reference(); 1959 VSIFPrintf( fp, " %d %c %-6s % dx%dx%d %s\n",1969 VSIFPrintf( fp, " %d %c %-6s %7d %dx%dx%d %s\n", 1960 1970 poDS->Dereference(), 1961 1971 poDS->GetShared() ? 'S' : 'N', 1962 1972 pszDriverName, 1973 (int) panGDALDatasetPID[i], 1963 1974 poDS->GetRasterXSize(), 1964 1975 poDS->GetRasterYSize(),
