Shut down if we run out of inputs or outputs.
This commit is contained in:
@@ -78,6 +78,13 @@ void peer_call(struct peer *peer) {
|
|||||||
void peer_loop() {
|
void peer_loop() {
|
||||||
fprintf(stderr, "X %s: Starting event loop\n", server_id);
|
fprintf(stderr, "X %s: Starting event loop\n", server_id);
|
||||||
while (!peer_shutdown_flag) {
|
while (!peer_shutdown_flag) {
|
||||||
|
if (!peer_count_in) {
|
||||||
|
fprintf(stderr, "X %s: No remaining inputs\n", server_id);
|
||||||
|
peer_shutdown(0);
|
||||||
|
} else if (!peer_count_out) {
|
||||||
|
fprintf(stderr, "X %s: No remaining outputs\n", server_id);
|
||||||
|
peer_shutdown(0);
|
||||||
|
}
|
||||||
#define MAX_EVENTS 10
|
#define MAX_EVENTS 10
|
||||||
struct epoll_event events[MAX_EVENTS];
|
struct epoll_event events[MAX_EVENTS];
|
||||||
int nfds = epoll_wait(peer_epoll_fd, events, MAX_EVENTS, wakeup_get_delay());
|
int nfds = epoll_wait(peer_epoll_fd, events, MAX_EVENTS, wakeup_get_delay());
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ static bool receive_autodetect_parse(struct receive *receive, struct packet *pac
|
|||||||
|
|
||||||
static void receive_del(struct receive *receive) {
|
static void receive_del(struct receive *receive) {
|
||||||
fprintf(stderr, "R %s: Connection closed\n", receive->id);
|
fprintf(stderr, "R %s: Connection closed\n", receive->id);
|
||||||
peer_count_out--;
|
peer_count_in--;
|
||||||
peer_epoll_del((struct peer *) receive);
|
peer_epoll_del((struct peer *) receive);
|
||||||
assert(!close(receive->peer.fd));
|
assert(!close(receive->peer.fd));
|
||||||
if (receive->prev) {
|
if (receive->prev) {
|
||||||
|
|||||||
Reference in New Issue
Block a user