Example #1
0
/* 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;
}
Example #2
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);
    }
Example #3
0
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;
}
Example #4
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");
    }
}
Example #6
0
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;
}
Example #7
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;
}