Esempio n. 1
0
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);

}
Esempio n. 2
0
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;
}
Esempio n. 3
0
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;
}
Esempio n. 4
0
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;
}
Esempio n. 5
0
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;
}