void DbPvPut::destroy() { if(DbPvDebug::getLevel()>0) printf("dbPvPut::destroy beingDestroyed %s\n", (beingDestroyed ? "true" : "false")); { Lock xx(mutex); if (beingDestroyed) return; beingDestroyed = true; if (pNotify) dbNotifyCancel(pNotify.get()); } }
static void tpnThread(void *pvt) { tpnInfo *ptpnInfo = (tpnInfo *) pvt; processNotify *ppn = (processNotify *) ptpnInfo->ppn; dbProcessNotify(ppn); epicsEventWait(ptpnInfo->callbackDone); dbNotifyCancel(ppn); epicsEventDestroy(ptpnInfo->callbackDone); dbChannelDelete(ppn->chan); free(ppn); free(ptpnInfo); }
static void tpnThread(void *pvt) { tpnInfo *ptpnInfo = (tpnInfo *)pvt; putNotify *ppn = (putNotify *)ptpnInfo->ppn; dbPutNotify(ppn); epicsEventWait(ptpnInfo->callbackDone); dbNotifyCancel(ppn); epicsEventDestroy(ptpnInfo->callbackDone); free((void *)ppn->paddr); free(ppn); free(ptpnInfo); }
static long del_record(dbCommon *pcommon) { stringinRecord *prec = (stringinRecord *)pcommon; DBLINK *plink = &prec->inp; devPvt *pdevPvt = (devPvt *)prec->dpvt; if (plink->type == CONSTANT) return 0; assert(plink->type == PN_LINK); dbNotifyCancel(&pdevPvt->pn); dbChannelDelete(pdevPvt->pn.chan); free(pdevPvt); plink->type = PV_LINK; return 0; }