Merge fix-wrong-order-phas fixes from 3.15 branch

This commit is contained in:
Andrew Johnson
2020-10-22 10:31:52 -05:00

View File

@@ -1076,13 +1076,10 @@ static void addToList(struct dbCommon *precord, scan_list *psl)
pse->pscan_list = psl;
ptemp = (scan_element *)ellLast(&psl->list);
while (ptemp) {
if (ptemp->precord->phas <= precord->phas) {
ellInsert(&psl->list, &ptemp->node, &pse->node);
break;
}
if (ptemp->precord->phas <= precord->phas) break;
ptemp = (scan_element *)ellPrevious(&ptemp->node);
}
if (ptemp == NULL) ellAdd(&psl->list, (void *)pse);
ellInsert(&psl->list, (ptemp ? &ptemp->node : NULL), &pse->node);
psl->modified = TRUE;
epicsMutexUnlock(psl->lock);
}
@@ -1108,7 +1105,7 @@ static void deleteFromList(struct dbCommon *precord, scan_list *psl)
return;
}
pse->pscan_list = NULL;
ellDelete(&psl->list, (void *)pse);
ellDelete(&psl->list, &pse->node);
psl->modified = TRUE;
epicsMutexUnlock(psl->lock);
}