Lines Matching defs:pNode

831   os2ShmNode *pNode,    /* Apply locks to this open shared-memory segment */
841 assert( sqlite3_mutex_held(pNode->mutex) || pNode->nRef==0 );
854 rc = DosSetFileLocks(pNode->hLockFile,
859 rc = DosSetFileLocks(pNode->hLockFile,
865 pNode->hLockFile,
870 ERR_TRACE(rc, ("os2ShmSystemLock: %d %s\n", rc, pNode->shmBaseName))
883 os2ShmNode *pNode;
907 for( pNode = os2ShmNodeList;
908 pNode && stricmp(shmName, pNode->shmBaseName) != 0;
909 pNode = pNode->pNext ) ;
912 if( !pNode ) {
913 pNode = sqlite3_malloc( sizeof(*pNode) + cbShmName );
914 if( pNode ) {
915 memset(pNode, 0, sizeof(*pNode) );
916 pNode->szRegion = szRegion;
917 pNode->hLockFile = (HFILE)-1;
918 strcpy(pNode->shmBaseName, shmName);
921 if( DosDupHandle(fd->h, &pNode->hLockFile) != 0 ) {
924 if( DosOpen((PSZ)shmName, &pNode->hLockFile, &action, 0, FILE_NORMAL,
930 sqlite3_free(pNode);
933 pNode->mutex = sqlite3_mutex_alloc(SQLITE_MUTEX_FAST);
934 if( !pNode->mutex ) {
935 sqlite3_free(pNode);
944 pNode->pNext = os2ShmNodeList;
945 os2ShmNodeList = pNode;
947 pNode = NULL;
949 } else if( pNode->szRegion != szRegion ) {
951 pNode = NULL;
954 if( pNode ) {
955 sqlite3_mutex_enter(pNode->mutex);
959 pLink->pShmNode = pNode;
960 pLink->pNext = pNode->pFirst;
961 pNode->pFirst = pLink;
962 pNode->nRef++;
966 sqlite3_mutex_leave(pNode->mutex);
987 os2ShmNode *pNode;
995 pNode = *ppNode;
997 if( pNode->nRef == 0 ) {
998 *ppNode = pNode->pNext;
1000 if( pNode->apRegion ) {
1002 os2ShmSystemLock(pNode, _SHM_WRLCK_WAIT, OS2_SHM_DMS, 1);
1004 while( pNode->nRegion-- ) {
1008 DosFreeMem(pNode->apRegion[pNode->nRegion]);
1011 (int)GetCurrentProcessId(), pNode->nRegion,
1016 os2ShmSystemLock(pNode, _SHM_UNLCK, OS2_SHM_DMS, 1);
1018 sqlite3_free(pNode->apRegion);
1021 DosClose(pNode->hLockFile);
1027 sprintf(fileName, "%s-lck", pNode->shmBaseName + 10);
1035 sqlite3_mutex_free(pNode->mutex);
1037 sqlite3_free(pNode);
1040 ppNode = &pNode->pNext;
1075 os2ShmNode *pNode;
1086 pNode = pFile->pShmLink->pShmNode ;
1088 sqlite3_mutex_enter(pNode->mutex);
1090 assert( szRegion==pNode->szRegion );
1093 if( iRegion >= pNode->nRegion ) {
1095 os2ShmSystemLock(pNode, _SHM_WRLCK_WAIT, OS2_SHM_DMS, 1);
1098 pNode->apRegion, (iRegion + 1) * sizeof(apRegion[0]));
1101 pNode->apRegion = apRegion;
1103 while( pNode->nRegion <= iRegion ) {
1105 pNode->shmBaseName, pNode->nRegion);
1121 apRegion[pNode->nRegion++] = pvTemp;
1125 for( n = pNode->nRegion; n <= iRegion; n++ )
1126 pNode->apRegion[n] = NULL;
1129 *pp = pNode->apRegion[iRegion];
1135 os2ShmSystemLock(pNode, _SHM_UNLCK, OS2_SHM_DMS, 1);
1139 *pp = pNode->apRegion[iRegion];
1142 sqlite3_mutex_leave(pNode->mutex);
1168 os2ShmNode *pNode = pLink->pShmNode;
1170 sqlite3_mutex_enter(pNode->mutex);
1172 for( ppLink = &pNode->pFirst;
1180 nRef = --pNode->nRef;
1183 pNode->shmBaseName))
1189 sqlite3_mutex_leave(pNode->mutex);