From 55de57dc5df7eecf723a3ba4412a2ad5d7c4987b Mon Sep 17 00:00:00 2001 From: "sgunderson@bigfoot.com" <> Date: Wed, 31 Jan 2007 20:42:13 +0100 Subject: [PATCH] Start firing off sender workers. --- jam.c | 43 ++++++++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/jam.c b/jam.c index 18bf122..8713dcd 100644 --- a/jam.c +++ b/jam.c @@ -18,6 +18,8 @@ struct in_addr *sources = NULL; unsigned num_sources = 0; unsigned room_sources = 0; +unsigned num_senders = 128; + const static struct option longopts[] = { { "source-list", required_argument, NULL, 's' }, { "destination-list", required_argument, NULL, 'd' }, @@ -105,6 +107,12 @@ void parse_options(int argc, char **argv) } } +void *sender_worker(void *arg) +{ + printf("Dummy sender worker\n"); + pthread_exit(0); +} + void *receiver_worker(void *arg) { int sock = (int)arg; @@ -167,6 +175,8 @@ int get_server_socket(unsigned short port) int main(int argc, char **argv) { int server_sock; + unsigned i; + pthread_attr_t attr; parse_options(argc, argv); @@ -178,8 +188,27 @@ int main(int argc, char **argv) printf("Sending data on port %u from %u sources to %u destinations.\n\n", port, num_sources, num_destinations); + + // FIXME: these do not really set errno + if (pthread_attr_init(&attr) != 0) { + perror("pthread_attr_init()"); + exit(1); + } - // FIXME: fire off sender workers here + if (pthread_attr_setstacksize(&attr, PTHREAD_STACK_MIN + 65536 + 0x4000) != 0) { + perror("pthread_attr_setstacksize"); + exit(1); + } + + // Fire off sender workers. + for (i = 0; i < num_senders; ++i) { + pthread_t thread; + + if (pthread_create(&thread, &attr, sender_worker, NULL) != 0) { + perror("pthread_create()"); + exit(1); + } + } /* * Listen for incoming connections, spawning off one receiver @@ -190,7 +219,6 @@ int main(int argc, char **argv) struct sockaddr_in addr; socklen_t addr_len = sizeof(addr); pthread_t thread; - pthread_attr_t attr; int sock = accept(server_sock, (struct sockaddr *)&addr, &addr_len); if (sock == -1) { @@ -198,17 +226,6 @@ int main(int argc, char **argv) exit(1); } - // FIXME: these do not really set errno - if (pthread_attr_init(&attr) != 0) { - perror("pthread_attr_init()"); - exit(1); - } - - if (pthread_attr_setstacksize(&attr, PTHREAD_STACK_MIN + 65536 + 0x4000) != 0) { - perror("pthread_attr_setstacksize"); - exit(1); - } - if (pthread_create(&thread, &attr, receiver_worker, (void *)sock) != 0) { perror("pthread_create()"); exit(1); -- 2.39.2