aboutsummaryrefslogtreecommitdiff
path: root/server-job.c
diff options
context:
space:
mode:
authorTiago Cunha <tcunha@gmx.com>2009-11-08 22:56:04 +0000
committerTiago Cunha <tcunha@gmx.com>2009-11-08 22:56:04 +0000
commit53ef4c2babc3d4bf8df16ba6bbd596d0b9a8240b (patch)
tree286476b1c81ce35d95e0cedce4dee1a728bfa5fb /server-job.c
parent5116aaa51a6059904a6b8ae75bffa77c95ceb41a (diff)
downloadrtmux-53ef4c2babc3d4bf8df16ba6bbd596d0b9a8240b.tar.gz
rtmux-53ef4c2babc3d4bf8df16ba6bbd596d0b9a8240b.tar.bz2
rtmux-53ef4c2babc3d4bf8df16ba6bbd596d0b9a8240b.zip
Sync OpenBSD patchset 493:
Switch jobs over to use a bufferevent.
Diffstat (limited to 'server-job.c')
-rw-r--r--server-job.c77
1 files changed, 0 insertions, 77 deletions
diff --git a/server-job.c b/server-job.c
deleted file mode 100644
index 79ee9d50..00000000
--- a/server-job.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* $Id: server-job.c,v 1.4 2009-11-08 22:40:36 tcunha Exp $ */
-
-/*
- * Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
- * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
- * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <sys/types.h>
-
-#include <event.h>
-#include <unistd.h>
-
-#include "tmux.h"
-
-/* Register jobs for poll. */
-void
-server_job_prepare(void)
-{
- struct job *job;
-
- SLIST_FOREACH(job, &all_jobs, lentry) {
- if (job->fd == -1)
- continue;
- 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, short events, void *data)
-{
- struct job *job = data;
-
- if (job->fd == -1)
- return;
-
- if (buffer_poll(fd, events, job->out, NULL) != 0) {
- close(job->fd);
- job->fd = -1;
- }
-}
-
-/* Job functions that happen once a loop. */
-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)
- continue;
- job->flags |= JOB_DONE;
-
- if (job->callbackfn != NULL) {
- job->callbackfn(job);
- if ((!job->flags & JOB_PERSIST)) {
- job_free(job);
- goto restart;
- }
- }
- }
-}