Пример #1
0
/** Find tags from given list.
 *
 * Copies values of argument tag list into the reference tags in the tag
 * list @a lst.
 *
 * @sa tl_gets()
 */
int tl_tgets(tagi_t lst[], tag_type_t tag, tag_value_t value, ...)
{
    int n = 0;
    tagi_t *t;

    ta_list ta;
    ta_start(ta, tag, value);

    for (t = lst; t; t = (tagi_t *)t_next(t)) {
        tag_type_t tt = t->t_tag;

        if (!tt)
            continue;

        if (tt->tt_class == ref_tag_class) {
            assert(((tag_type_t)tt->tt_magic)->tt_class->tc_ref_set);
            n += tl_get(tt, (void *)t->t_value, ta_args(ta));
        }
#if !defined(NDEBUG)
        else if (tt->tt_class->tc_ref_set) {
            fprintf(stderr, "WARNING: tag %s::%s used in tl_tgets(lst)\n",
                    tt->tt_ns, tt->tt_name);
            assert(tt->tt_class == ref_tag_class);
        }
#endif
    }

    ta_end(ta);

    return n;
}
Пример #2
0
void
process_run (PPROCESS p)
{
  unsigned int a,b,c,d,ip;
  PTHREAD t = tl_get (p->threads, &p->rthread);
  int interrupt_signal;
  p->rthread = p->rthread++ % tl_length (p->threads);
}