version 1.3, 2009/11/01 23:20:37 |
version 1.4, 2009/11/04 20:50:11 |
|
|
|
|
#include <sys/types.h> |
#include <sys/types.h> |
|
|
|
#include <event.h> |
#include <unistd.h> |
#include <unistd.h> |
|
|
#include "tmux.h" |
#include "tmux.h" |
|
|
SLIST_FOREACH(job, &all_jobs, lentry) { |
SLIST_FOREACH(job, &all_jobs, lentry) { |
if (job->fd == -1) |
if (job->fd == -1) |
continue; |
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. */ |
/* Process a single job event. */ |
void |
void |
server_job_callback(int fd, int events, void *data) |
server_job_callback(int fd, short events, void *data) |
{ |
{ |
struct job *job = data; |
struct job *job = data; |
|
|
|
|
server_job_loop(void) |
server_job_loop(void) |
{ |
{ |
struct job *job; |
struct job *job; |
|
|
restart: |
restart: |
SLIST_FOREACH(job, &all_jobs, lentry) { |
SLIST_FOREACH(job, &all_jobs, lentry) { |
if (job->flags & JOB_DONE || job->fd != -1 || job->pid != -1) |
if (job->flags & JOB_DONE || job->fd != -1 || job->pid != -1) |