예제 #1
0
파일: vtimer.c 프로젝트: jferreir/RIOT
void vtimer_remove(vtimer_t *t)
{
    unsigned irq_state = disableIRQ();

    priority_queue_remove(&shortterm_priority_queue_root, timer_get_node(t));
    priority_queue_remove(&longterm_priority_queue_root, timer_get_node(t));
    update_shortterm();

    restoreIRQ(irq_state);

}
예제 #2
0
파일: vtimer.c 프로젝트: jferreir/RIOT
static int set_longterm(vtimer_t *timer)
{
    timer->priority_queue_entry.priority = timer->absolute.seconds;
    /* *** UGLY FIX BEGINS *** */
    /* Workaround for a bug in a so far undiscovered location which causes the
     * vtimer to add the same timer twice, locking the system in an infinite
     * loop inside priority_queue_add. */
    priority_queue_remove(&longterm_priority_queue_root, timer_get_node(timer));
    /* *** UGLY FIX ENDS *** */
    priority_queue_add(&longterm_priority_queue_root, timer_get_node(timer));
    return 0;
}
예제 #3
0
파일: vtimer.c 프로젝트: jferreir/RIOT
static int set_shortterm(vtimer_t *timer)
{
    DEBUG("set_shortterm(): Absolute: %" PRIu32 " %" PRIu32 "\n", timer->absolute.seconds, timer->absolute.microseconds);
    timer->priority_queue_entry.priority = timer->absolute.microseconds;
    /* *** UGLY FIX BEGINS *** */
    /* Workaround for a bug in a so far undiscovered location which causes the
     * vtimer to add the same timer twice, locking the system in an infinite
     * loop inside priority_queue_add. */
    priority_queue_remove(&shortterm_priority_queue_root, timer_get_node(timer));
    /* *** UGLY FIX ENDS *** */
    priority_queue_add(&shortterm_priority_queue_root, timer_get_node(timer));
    return 1;
}
예제 #4
0
파일: vtimer.c 프로젝트: AnonMall/RIOT
static int set_shortterm(vtimer_t *timer)
{
    DEBUG("set_shortterm(): Absolute: %" PRIu32 " %" PRIu32 "\n", timer->absolute.seconds, timer->absolute.microseconds);
    timer->priority_queue_entry.priority = timer->absolute.microseconds;
    priority_queue_add(&shortterm_priority_queue_root, timer_get_node(timer));
    return 1;
}
예제 #5
0
파일: vtimer.c 프로젝트: AnonMall/RIOT
static int set_longterm(vtimer_t *timer)
{
    timer->priority_queue_entry.priority = timer->absolute.seconds;
    priority_queue_add(&longterm_priority_queue_root, timer_get_node(timer));
    return 0;
}