Newer
Older
typedef struct queue{
struct node *tail;
int size;
}queue_t;
struct buffer_rc{
char *tab[8];
int size;
int len;
};
struct buffer_cw
{
queue_t *tab[8];
int size;
int len;
struct buffer_rccw{
struct buffer_rc *struct1;
struct buffer_cw *struct2;
};
pthread_mutex_t mutex1;
sem_t empty1;
sem_t full1;
pthread_mutex_t mutex2;
sem_t empty2;
sem_t full2;
void put_in_buffer_1(char *c);
char *get_from_buffer_1(void);
void put_in_buffer_2(struct queue *ptr);
queue_t *get_from_buffer_2(void);
int is_div(unsigned long long number, long i);
int is_prime(unsigned long long number);
void enqueue(queue_t* q, unsigned long long val);
queue_t* prime_divs(unsigned long long number);
void *reading (void *param);
void *calculating(void *param);
void *writing(void *param);
void sem_1_initializer(struct buffer_rc *buf);
void sem_2_initializer (struct buffer_cw *buf);
struct buffer_rc * buff_init_1(FILE *file1);
struct buffer_cw * buff_init_2(FILE *file2);
struct buffer_rccw *buff_init_12(struct buffer_rc *ptr1,struct buffer_cw *ptr2);
void thread_create_join(struct buffer_rc *ptr1,struct buffer_cw *ptr2,struct buffer_rccw *ptr3);