aboutsummaryrefslogtreecommitdiff
path: root/pa6_threaded_resolver/array.h
blob: ce5ef7941589a738f8dd2adbbcef214b8f98c3a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Jack Sangdahl
// CSCI3753 SP24
// PA4 Shared Array
#include <pthread.h>
#include <semaphore.h>

#pragma once

#define ARRAY_SIZE 8

typedef struct {
  void *data[ARRAY_SIZE];
  int head;
  int tail;
  pthread_mutex_t lock;
  sem_t avail;
  sem_t empty;
} array;

int array_init(array *q);
int array_put(array *q, char *hostname);
int array_get(array *q, char **hostname);
void array_free(array *q);