From dd36982ad51632bc47ce7b73cad0696e85d593c3 Mon Sep 17 00:00:00 2001 From: Tiago Cunha Date: Sun, 8 Nov 2009 22:40:36 +0000 Subject: Sync OpenBSD patchset 491: Initial changes to move tmux to libevent. This moves the client-side loops are pretty much fully over to event-based only (tmux.c and client.c) but server-side (server.c and friends) treats libevent as a sort of clever poll, waking up after every event to run various things. Moving the server stuff over to bufferevents and timers and so on will come later. --- server-job.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'server-job.c') diff --git a/server-job.c b/server-job.c index 7417de96..79ee9d50 100644 --- a/server-job.c +++ b/server-job.c @@ -1,4 +1,4 @@ -/* $Id: server-job.c,v 1.3 2009-11-02 21:38:26 tcunha Exp $ */ +/* $Id: server-job.c,v 1.4 2009-11-08 22:40:36 tcunha Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott @@ -18,6 +18,7 @@ #include +#include #include #include "tmux.h" @@ -31,13 +32,16 @@ server_job_prepare(void) SLIST_FOREACH(job, &all_jobs, lentry) { if (job->fd == -1) continue; - server_poll_add(job->fd, POLLIN, server_job_callback, job); + event_del(&job->event); + event_set( + &job->event, job->fd, EV_READ, server_job_callback, job); + event_add(&job->event, NULL); } } /* Process a single job event. */ void -server_job_callback(int fd, int events, void *data) +server_job_callback(int fd, short events, void *data) { struct job *job = data; @@ -55,7 +59,7 @@ void server_job_loop(void) { struct job *job; - + restart: SLIST_FOREACH(job, &all_jobs, lentry) { if (job->flags & JOB_DONE || job->fd != -1 || job->pid != -1) -- cgit