|
Post by princemaharajah on May 28, 2010 13:24:53 GMT -5
fell to 8-24, front court is somewhat shaky
|
|
|
Post by CC on May 28, 2010 14:28:12 GMT -5
Later fellas. I'm actually gonna get up early too to do some h/w, so there's a good chance I sim early. (ie noon pst) sim!
|
|
|
Post by Kruwaukee on May 28, 2010 15:21:02 GMT -5
Later fellas. I'm actually gonna get up late too to do some h/w but won't have time, so there's a good chance I won't sim early. (ie noon pst) lol Who saw this one coming?
|
|
|
Post by ukfanjohn on May 28, 2010 15:27:27 GMT -5
:-O
|
|
|
Post by donatello2424 on May 28, 2010 16:10:53 GMT -5
I like how early for Ducky is noon his time.
|
|
|
Post by ukfanjohn on May 28, 2010 16:14:06 GMT -5
I've been packing/moving the past six hours.
Moving to a new house blows.
|
|
|
Post by tmaczdaddy on May 28, 2010 16:18:41 GMT -5
Thanks for missing my DC for the 3rd time.
Went 1-4
|
|
|
Post by cliff "woo" harris on May 28, 2010 16:24:04 GMT -5
Thanks for missing my DC for the 3rd time. Went 1-4 idiot, I entered it..
|
|
|
Post by cliff "woo" harris on May 28, 2010 16:24:38 GMT -5
Lol, I've actually been up the entire time, since about 11:30, but this assignment is due by 5:30, I thought I'd have it done by now, but I haven't and this clearly takes priority..
|
|
|
Post by cliff "woo" harris on May 28, 2010 16:25:23 GMT -5
Here's some physical evidence for ur douchers, I am working like a mad man..
#include<stdio.h> #include<stdlib.h> #include<ctype.h> #include<unistd.h> #include<pthread.h> #include<string.h> #include<semaphore.h>
#define FILESIZE 20 #define BUFFER_SIZE 5 #define PRODUCERS 20 #define CONSUMERS 5
struct fifo_struct { char fileName[1024]; struct fifo_struct* next; };
struct linked_list { struct fifo_struct* head; struct fifo_struct* tail; };
char buffer[BUFFER_SIZE][128]; int counter;
pthread_mutex_t mutex; sem_t full, empty;
void print_queue(const struct linked_list* ps) { struct fifo_struct* p = NULL;
if(ps) { for(p = ps->head; p; p = p->next) { if(p) printf("int = %s\n", p->fileName); else printf("can't print NULL STRUCT\n"); } } } void *producer(void *q); void *consumer(void *q); struct linked_list *s;
int main() { pthread_t producerVar[PRODUCERS]; pthread_t consumerVar[CONSUMERS]; char str[200]; int i = 0; counter = 0; sem_init(&full, 0, 0); sem_init(&empty, 0, BUFFER_SIZE); pthread_mutex_init(&mutex,NULL); struct fifo_struct* fifo;
// Initialize the 5 buffer slots for(i = 0; i < BUFFER_SIZE; i++) { buffer[0] = '\n'; }
// Create linked list s = malloc( 1 * sizeof(*s)); if(s == NULL) { fprintf(stderr, "LINE: %d, malloc() failed\n", __LINE__); } s->head = s->tail = NULL;
for(i = 0; i < (FILESIZE); i++) { // Generates file names to store into queue sprintf(str, "in%d.txt", i);
// Create queue to store file names fifo = malloc(1 * sizeof(*fifo));
// Error in creating fifo if(fifo == NULL) { fprintf(stderr, "IN %s, %s: malloc() failed\n", __FILE__, "list_add"); }
// Store filename into queue strcpy(fifo->fileName,str); fifo->next = NULL;
if(s == NULL) { printf("Error: Queue has not been initialized\n"); } else if(s->head == NULL && s->tail == NULL) { // First element in queue s->head = s->tail = fifo; } else if(s->head == NULL || s->tail == NULL) { printf("Error: Problem with code\n"); free(fifo); } else { // Increments queue s->tail->next = fifo; s->tail = fifo; } } //print_queue(s);
// Create producer threads for(i = 0; i < PRODUCERS; i++) { pthread_create(&producerVar, NULL, producer, &i); //pthread_join(producerVar, NULL); } // Create consumer threads for(i = 0; i < CONSUMERS; i++) { pthread_create(&consumerVar, NULL, consumer, s); } for(i = 0; i < PRODUCERS; i++) { pthread_join(producerVar, NULL); }
return 0; }
void *producer(void *idx) { int myidx = * (int *) idx; int i = 0; char fileContent[1024]; char line[1024]; FILE * myfile; struct linked_list *q; //print_queue(q); struct fifo_struct* tmp1 = NULL; struct fifo_struct* tmp2 = NULL; pthread_mutex_lock(&mutex); printf("IN PRODUCER\n"); q = s; if(q == NULL) { printf("List is empty\n"); return(NULL); } else if(q->head == NULL && q->tail == NULL) { printf("List is empty\n"); return(NULL); } else if(q->head == NULL || q->tail == NULL) { printf("Error: Problem with code\n"); return(NULL); }
printf("Producer: %d\n", myidx); //print_queue(q); myfile = fopen(q->head->fileName,"r"); tmp1 = q->head; tmp2 = tmp1->next; free(tmp1); q->head = tmp2;
if(q->head == NULL) q->tail = q->head; //print_queue(q); printf("After printq\n"); fflush(stdout); printf("\n");
if((fgets(line, 1024, myfile)) != NULL) { strcpy(fileContent, line); printf("%s",fileContent); } strcpy(fileContent, line); printf("Myfile: %s",fileContent); fclose(myfile);
while(fileContent != '\n') { fileContent = toupper(fileContent); i++; }
pthread_mutex_unlock(&mutex); sem_wait(&empty); if(counter < BUFFER_SIZE) { strncpy(buffer[counter],fileContent,128); printf("buffer[%d] = %s\n", counter, buffer[counter]); counter++; }
sem_post(&full); return(NULL); }
void *consumer(void *q) { int myidx = * (int *) q;
printf("\t\t\t\tCONSUMER: %d\n", myidx);
while(1) { sem_wait(&full); if(counter > 0) { printf("\t\t\tbuffer[%d] = %s\n", counter - 1, buffer[(counter - 1)]); counter--; } sem_post(&empty); } return(NULL); }
|
|
|
Post by cliff "woo" harris on May 28, 2010 16:25:58 GMT -5
So yeah, I'll be back around 5 to sim, unless I get this thing done sooner. I still have a bug with the output, so we'll see.
|
|
|
Post by Kruwaukee on May 28, 2010 16:26:42 GMT -5
fun fun fun
|
|
|
Post by tmaczdaddy on May 28, 2010 16:26:46 GMT -5
Thanks for missing my DC for the 3rd time. Went 1-4 idiot, I entered it.. Wanna tell me how Ricky Davis got no minutes?
|
|
|
Post by Kruwaukee on May 28, 2010 16:27:05 GMT -5
maybe a little sim break would do your mind well
|
|
|
Post by Kruwaukee on May 28, 2010 16:27:38 GMT -5
Wanna tell me how Ricky Davis got no minutes? he got caught smoking joints in the locker room bathroom
|
|