#include <types/fd.h>
#include <types/global.h>
+#include <proto/signal.h>
#include <proto/task.h>
#if defined(USE_MY_EPOLL)
fd_flush_changes();
/* now let's wait for events */
- if (run_queue)
+ if (run_queue || signal_queue_len)
wait_time = 0;
else if (!exp)
wait_time = MAX_DELAY_MS;
#include <types/global.h>
#include <proto/fd.h>
+#include <proto/signal.h>
#include <proto/task.h>
/* private data */
timeout.tv_sec = 0;
timeout.tv_nsec = 0;
- if (!run_queue) {
+ if (!run_queue && !signal_queue_len) {
if (!exp) {
delta_ms = MAX_DELAY_MS;
timeout.tv_sec = (MAX_DELAY_MS / 1000);
#include <types/global.h>
#include <proto/fd.h>
+#include <proto/signal.h>
#include <proto/task.h>
}
/* now let's wait for events */
- if (run_queue)
+ if (run_queue || signal_queue_len)
wait_time = 0;
else if (!exp)
wait_time = MAX_DELAY_MS;
#include <types/global.h>
#include <proto/fd.h>
+#include <proto/signal.h>
#include <proto/task.h>
delta.tv_sec = 0;
delta.tv_usec = 0;
- if (!run_queue) {
+ if (!run_queue && !signal_queue_len) {
if (!exp) {
delta_ms = MAX_DELAY_MS;
delta.tv_sec = (MAX_DELAY_MS / 1000);
#include <types/global.h>
#include <proto/fd.h>
+#include <proto/signal.h>
#include <proto/task.h>
#if defined(USE_MY_EPOLL)
}
last_skipped = 0;
- if (nbspec || status || run_queue) {
+ if (nbspec || status || run_queue || signal_queue_len) {
/* Maybe we have processed some events that we must report, or
* maybe we still have events in the spec list, or there are
* some tasks left pending in the run_queue, so we must not