Lines Matching refs:ctx
17 static int wait_for_start_or_abort(struct thread_ctx *ctx)
19 while (!ctx->start && !ctx->abort)
21 return ctx->abort ? -1 : 0;
26 struct thread_ctx *ctx = data;
27 int loop = ctx->loop, err = 0;
29 if (wait_for_start_or_abort(ctx) < 0)
31 pthread_barrier_wait(&ctx->barrier);
39 pthread_barrier_wait(&ctx->barrier);
44 if (bpf_map_update_elem(ctx->outer_map_fd, &zero, &fd, 0) < 0)
47 pthread_barrier_wait(&ctx->barrier);
50 ctx->err = err;
57 struct thread_ctx *ctx = data;
58 int loop = ctx->loop;
60 if (wait_for_start_or_abort(ctx) < 0)
62 pthread_barrier_wait(&ctx->barrier);
67 pthread_barrier_wait(&ctx->barrier);
78 struct thread_ctx ctx;
105 memset(&ctx, 0, sizeof(ctx));
106 pthread_barrier_init(&ctx.barrier, NULL, 2);
107 ctx.outer_map_fd = bpf_map__fd(outer_map);
108 ctx.loop = 4;
110 err = pthread_create(&tid[0], NULL, update_map_fn, &ctx);
114 err = pthread_create(&tid[1], NULL, access_map_fn, &ctx);
116 ctx.abort = 1;
121 ctx.start = 1;
125 ASSERT_OK(ctx.err, "err");