/* Test routine, increase avg. cpu load by exactly 50% */ int cpuBurnLoad50(int seconds) { test_wd = wdCreate(); if (!test_wd) { printf("Error: cannot create watchdog timer\n"); return -1; } test_sem = semBCreate(SEM_Q_FIFO, SEM_EMPTY); if (!test_sem) { printf("Error: cannot create semaphore\n"); wdDelete(test_wd); return -1; } test_ticks = seconds*sysClkRateGet(); test_burn = FALSE; wdStart(test_wd, 1, testTick, 0); while (test_ticks) { /* sleep for one tick */ semTake(test_sem, WAIT_FOREVER); /* burn cpu for one tick */ while (test_burn) { test_counter++; } } semDelete(test_sem); wdDelete(test_wd); return 0; }
int timer_delete ( timer_t timerid /* timer ID */ ) { if (intContext ()) return (ERROR); if (timerid == NULL) { errno = EINVAL; return (ERROR); } if (timer_cancel (timerid) != 0) return (ERROR); if (wdDelete (timerid->wdog) != OK) return (ERROR); (void)sigPendDestroy (&timerid->sigpend); free ((char *) timerid); return (OK); }
int pocoregress_init() { long t1, t2; WDOG_ID wd; wd = wdCreate(); if (!wd) { logMsg("cannot create watchdog\n"); return 0; } sem = semBCreate(0, SEM_EMPTY); if (!sem) { logMsg("cannot create semaphore\n"); return 0; } logMsg("waiting %d ticks...\n", 10); t1 = tickGet(); wdStart(wd, 10, wddone, 0); semTake(sem, WAIT_FOREVER); t2 = tickGet(); logMsg("watchodog triggered after %d ticks (should be %d)\n", t2-t1, 10); wdDelete(wd); return 0; }
DiaTimer :: ~DiaTimer() { #ifdef POSIX timer_delete (myTimer); #else wdDelete(timerId); // Delete the VxWorks Watchdog timer #endif return; }
void blasteeUDPQuit(void) { blasteeUDPquitFlag = 1; taskDelay(60); /* try to end gracefully */ if (taskIdVerify(tid) == OK) /* blasteeUDP still trying to receive */ { close (sock); wdDelete (blastWd); free (buffer); taskDelete (tid); printf ("blasteeUDP forced stop.\n"); } }
static int __wind_wd_delete(struct task_struct *curr, struct pt_regs *regs) { xnhandle_t handle = __xn_reg_arg1(regs); wind_wd_t *wd; wd = (wind_wd_t *)xnregistry_fetch(handle); if (!wd) return S_objLib_OBJ_ID_ERROR; if (wdDelete((WDOG_ID)wd) == ERROR) return wind_errnoget(); return 0; }
int arretConditionnement() { wdDelete(wdReparation); taskDelete(tidTraitementPalette); taskDelete(tidTraitementCarton); msgQDelete(fileConvoyage); semDelete(semClapet); semDelete(semCompteurPalette); semDelete(semEtatEmb); semDelete(semCapteurPalette); semDelete(semEtatImp); semDelete(semCapteurCarton); return OK; }