diff options
author | Tiago Cunha <tcunha@gmx.com> | 2009-11-08 22:40:36 +0000 |
---|---|---|
committer | Tiago Cunha <tcunha@gmx.com> | 2009-11-08 22:40:36 +0000 |
commit | dd36982ad51632bc47ce7b73cad0696e85d593c3 (patch) | |
tree | edb86b1ff2689f20522150f2e1fbeb0600f7a58c /server-job.c | |
parent | 5ce49941fb8ab4ce65df4ef872028ab89fd855ae (diff) | |
download | rtmux-dd36982ad51632bc47ce7b73cad0696e85d593c3.tar.gz rtmux-dd36982ad51632bc47ce7b73cad0696e85d593c3.tar.bz2 rtmux-dd36982ad51632bc47ce7b73cad0696e85d593c3.zip |
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.
Diffstat (limited to 'server-job.c')
-rw-r--r-- | server-job.c | 12 |
1 files changed, 8 insertions, 4 deletions
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 <nicm@users.sourceforge.net> @@ -18,6 +18,7 @@ #include <sys/types.h> +#include <event.h> #include <unistd.h> #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) |