# endif
#endif
-
#include "job.h"
+#include "gai.h"
static int epollfd = -1;
static bool sigint = false;
{
struct epoll_event event = { .data.ptr = job, .events = EPOLLRDHUP };
- if (job->state & (JOB_READ | JOB_LISTEN)) {
+ if (job->mode & (JOB_READ | JOB_LISTEN)) {
event.events |= EPOLLIN;
}
- if (job->state & (JOB_WRITE | JOB_CONN)) {
+ if (job->mode & (JOB_WRITE | JOB_CONN)) {
event.events |= EPOLLOUT;
}
return job;
}
-void job_update_state(job_t *job, int state)
+void job_update_mode(job_t *job, int mode)
{
struct epoll_event event = { .data.ptr = job, .events = EPOLLRDHUP };
- if (job->state == state)
+ if (job->mode == mode)
return;
- job->state = state;
- if (job->state & (JOB_READ | JOB_LISTEN)) {
+ job->mode = mode;
+ if (job->mode & (JOB_READ | JOB_LISTEN)) {
event.events |= EPOLLIN;
}
- if (job->state & (JOB_WRITE | JOB_CONN)) {
+ if (job->mode & (JOB_WRITE | JOB_CONN)) {
event.events |= EPOLLOUT;
}
}
}
-job_t *job_accept(job_t *listener, int state)
+job_t *job_accept(job_t *listener, int mode)
{
int sock;
job_t *res;
res = job_new();
res->fd = sock;
- res->state = state;
+ res->mode = mode;
res->process = listener->process;
res->stop = listener->stop;
return job_register_fd(res);
job_delete(&job);
}
}
+
+ gai_process();
}
}