Improve error reporting by addToList & deleteFromList.

This commit is contained in:
Andrew Johnson
2009-02-14 00:05:01 +00:00
parent 77669d793d
commit b62d796bff

View File

@@ -719,12 +719,12 @@ static void addToList(struct dbCommon *precord, scan_list *psl)
epicsMutexMustLock(psl->lock);
pse = precord->spvt;
if (pse==NULL) {
if (pse == NULL) {
pse = dbCalloc(1, sizeof(scan_element));
precord->spvt = pse;
pse->precord = precord;
}
pse ->pscan_list = psl;
pse->pscan_list = psl;
ptemp = (scan_element *)ellFirst(&psl->list);
while (ptemp) {
if (ptemp->precord->phas > precord->phas) {
@@ -743,14 +743,19 @@ static void deleteFromList(struct dbCommon *precord, scan_list *psl)
scan_element *pse;
epicsMutexMustLock(psl->lock);
if (precord->spvt==NULL) {
pse = precord->spvt;
if (pse == NULL) {
epicsMutexUnlock(psl->lock);
errlogPrintf("dbScan: Tried to delete record from wrong scan list!\n"
"\t%s.SPVT = NULL, but psl = %p\n",
precord->name, (void *)psl);
return;
}
pse = precord->spvt;
if (pse == NULL || pse->pscan_list != psl) {
if (pse->pscan_list != psl) {
epicsMutexUnlock(psl->lock);
errlogPrintf("deleteFromList failed");
errlogPrintf("dbScan: Tried to delete record from wrong scan list!\n"
"\t%s.SPVT->pscan_list = %p but psl = %p\n",
precord->name, (void *)pse, (void *)psl);
return;
}
pse->pscan_list = NULL;