Something that might work

This commit is contained in:
Quentin Dufour 2019-03-27 17:31:46 +01:00
parent acae81b91c
commit b6258759f0
4 changed files with 15 additions and 3 deletions

View file

@ -403,11 +403,20 @@ co_error:
}
int rr_on_timer(struct evt_core_ctx* ctx, struct evt_core_fdinfo* fdinfo) {
uint64_t ctr;
ssize_t tmr_rd;
tmr_rd = read(fdinfo->fd, &ctr, sizeof(ctr));
if (tmr_rd == -1 && errno == EAGAIN) return 1;
if (tmr_rd < 0) {
perror("read on timer");
fprintf(stderr, "An error occured on timer fd=%d\n", fdinfo->fd);
exit(EXIT_FAILURE);
}
struct algo_ctx* app_ctx = fdinfo->cat->app_ctx;
struct rr_ctx* rr = app_ctx->misc;
struct waited_pkt* pkt = fdinfo->other;
evt_core_rm_fd(ctx, fdinfo->fd);
pkt->on = 0;
if (ring_gt (pkt->id, rr->recv_id_late)) rr->recv_id_late = pkt->id;
if (ring_le (pkt->id, rr->recv_id)) return 1;
@ -424,6 +433,7 @@ int rr_on_timer(struct evt_core_ctx* ctx, struct evt_core_fdinfo* fdinfo) {
rr_pkt_unroll (ctx, app_ctx);
}
evt_core_rm_fd(ctx, fdinfo->fd);
return 1;
}

View file

@ -126,7 +126,8 @@ void mv_buffer_rtoa(struct algo_ctx* app_ctx, struct evt_core_fdinfo* from, void
}
g_hash_table_remove(app_ctx->used_buffer, &from->fd);
if (g_hash_table_contains(app_ctx->application_waiting, to)) {
fprintf(stderr, "Data already exist for this entry\n");
fprintf(stderr, "Data already exists for this entry\n");
debug_buffer(app_ctx, from);
exit(EXIT_FAILURE);
}
g_hash_table_insert(app_ctx->application_waiting, to, bp);

View file

@ -96,7 +96,7 @@ int on_timer(struct evt_core_ctx* ctx, struct evt_core_fdinfo* fdinfo) {
struct measure_conf* mc = fdinfo->other;
s = read(fdinfo->fd, &ticks, sizeof(uint64_t));
if (s == -1 && errno == EAGAIN) return 0;
if (s == -1 && errno == EAGAIN) return 1;
if (s != sizeof(uint64_t)) {
perror("Read error");
exit(EXIT_FAILURE);

View file

@ -109,6 +109,7 @@ int create_tcp_server(char* host, char* service) {
perror("setsockopt TCP_NODELAY");
exit(EXIT_FAILURE);
}
return sock;
}