uv_close((uv_handle_t *)&uvsigchld, 0);
uv_close((uv_handle_t *)&uvsigint, 0);
}
-static void job_process(void)
+void job_process(void)
{
if (joblen && !jobtab[0].job && current_child == -1) {
jobtab[0].then(jobtab[0].client, current_result);
}
}
}
-void job_process_begin(void)
-{
- job_process();
-}
-void job_process_end(void)
-{
- job_process();
-}
void job_add(struct client_data *cl, jobproc_t job, contproc_t then, char *data, size_t len)
{
typedef void (*contproc_t)(struct client_data *cl, int res);
void job_init(void);
void job_fini(void);
-void job_process_begin(void);
-void job_process_end(void);
+void job_process(void);
void job_add(struct client_data *client, jobproc_t job, contproc_t then, char *data, size_t len);
void job_kill(struct client_data *client);
void job_password_check(struct client_data *client, const char *key, const char *pw, const char *fn, contproc_t then);
break;
}
- job_process_begin();
- if (netpoll::begin() == -1) {
- if (errno == EINTR) {
- job_process_end();
- continue;
- }
- net_perror("ERROR SELECT");
- job_process_end();
- }
- job_process_end();
+ job_process();
+ netpoll::begin();
+ job_process();
+
int ev;
netpoll::net_pollfd pfd;
while ((ev = netpoll::get(&pfd))) {
events |= UV_WRITABLE;
uvpoll[i]->events = events;
}
-int begin(void)
+void begin(void)
{
for (int i = 0; i < nfds; i++) {
if (uvpoll[i]->dead == 0) {
}
}
uv_run(uvloop, UV_RUN_ONCE);
- return 0;
}
int get(struct net_pollfd *out)
{
void del_and_close(SOCKET fd);
void reg(SOCKET fd, int ev);
void change_type(SOCKET fd, int type);
-int begin(void);
+void begin(void);
int get(struct net_pollfd *out);
}
#define NETPOLL_IN 1