diff options
author | Jack Sangdahl <[email protected]> | 2024-04-02 23:09:33 -0600 |
---|---|---|
committer | Jack Sangdahl <[email protected]> | 2024-04-02 23:09:33 -0600 |
commit | 7ddf686201d052e7c55d622dddd62b7e2ede880d (patch) | |
tree | 1ce98638df78223b5a42ef8ba7aa7b1f5d49941a /pa6_threaded_resolver/multi-lookup.h | |
parent | f3172b837cc728dec1daa74ce98a72548f204b21 (diff) | |
download | csci3753-7ddf686201d052e7c55d622dddd62b7e2ede880d.tar.gz csci3753-7ddf686201d052e7c55d622dddd62b7e2ede880d.zip |
pa6
Diffstat (limited to 'pa6_threaded_resolver/multi-lookup.h')
-rw-r--r-- | pa6_threaded_resolver/multi-lookup.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/pa6_threaded_resolver/multi-lookup.h b/pa6_threaded_resolver/multi-lookup.h new file mode 100644 index 0000000..41e74d5 --- /dev/null +++ b/pa6_threaded_resolver/multi-lookup.h @@ -0,0 +1,44 @@ +// Jack Sangdahl +// CSCI3753 SP24 +// PA6 Threaded Resolver +#include "array.h" +#include "util.h" +#include <pthread.h> +#include <stdio.h> +#include <stdlib.h> +#include <sys/syscall.h> +#include <sys/time.h> +#include <unistd.h> + +#define ARRAY_SIZE 8 +#define MAX_INPUT_FILES 100 +#define MAX_REQUESTER_THREADS 10 +#define MAX_RESOLVER_THREADS 10 +#define MAX_NAME_LENGTH 16 +#define MAX_IP_LENGTH INET6_ADDRSTRLEN +#define ELAPSED_SECONDS(a, b) \ + ((double)(b.tv_usec - a.tv_usec) / 1000000 + (double)(b.tv_sec - a.tv_sec)) + +void *request(void *data); +void *resolve(void *data); + +typedef struct { + FILE *req_log; + queue *file_names; + queue *buffer; + pthread_mutex_t *m; + pthread_cond_t *c_req; + pthread_cond_t *c_res; + pthread_mutex_t *input_lock; + pthread_mutex_t *req_log_lock; +} request_data; + +typedef struct { + FILE *res_log; + queue *buffer; + pthread_mutex_t *m; + pthread_cond_t *c_req; + pthread_cond_t *c_res; + pthread_mutex_t *res_log_lock; + bool *req_done; +} resolve_data; |