Temporarily removing pthread calls

This commit is contained in:
Justin Ethier 2015-10-30 23:06:14 -04:00
parent cfc1f77bbc
commit 2b849eb524
2 changed files with 14 additions and 14 deletions

24
gc.c
View file

@ -488,14 +488,14 @@ void gc_mark_gray(gc_thread_data *thd, object obj)
// either object type or mark. Both should be stable once the object is placed // either object type or mark. Both should be stable once the object is placed
// into the heap, with the collector being the only thread that changes marks. // into the heap, with the collector being the only thread that changes marks.
if (is_object_type(obj) && mark(obj) == gc_color_clear) { // TODO: sync?? if (is_object_type(obj) && mark(obj) == gc_color_clear) { // TODO: sync??
// TODO: lock mark buffer (not ideal, but a possible first step)? //TODO: // TODO: lock mark buffer (not ideal, but a possible first step)?
pthread_mutex_lock(&(thd->lock)); //TODO: pthread_mutex_lock(&(thd->lock));
thd->mark_buffer = vpbuffer_add(thd->mark_buffer, //TODO: thd->mark_buffer = vpbuffer_add(thd->mark_buffer,
&(thd->mark_buffer_len), //TODO: &(thd->mark_buffer_len),
thd->last_write, //TODO: thd->last_write,
obj); //TODO: obj);
pthread_mutex_unlock(&(thd->lock)); //TODO: pthread_mutex_unlock(&(thd->lock));
ATOMIC_INC(&(thd->last_write)); //TODO: ATOMIC_INC(&(thd->last_write));
} }
} }
@ -668,10 +668,10 @@ void gc_thread_data_init(gc_thread_data *thd)
thd->last_read = 0; thd->last_read = 0;
thd->mark_buffer_len = 128; thd->mark_buffer_len = 128;
thd->mark_buffer = vpbuffer_realloc(thd->mark_buffer, &(thd->mark_buffer_len)); thd->mark_buffer = vpbuffer_realloc(thd->mark_buffer, &(thd->mark_buffer_len));
if (pthread_mutex(&(thd->lock), NULL) != 0) { // TODO: if (pthread_mutex(&(thd->lock), NULL) != 0) {
fprintf(stderr, "Unable to initialize thread mutex\n"); // TODO: fprintf(stderr, "Unable to initialize thread mutex\n");
exit(1); // TODO: exit(1);
} // TODO: }
} }
//// Unit testing: //// Unit testing:

View file

@ -16,7 +16,7 @@
#include <stdarg.h> #include <stdarg.h>
#include <string.h> #include <string.h>
#include <math.h> #include <math.h>
#include <pthread.h> // TODO: #include <pthread.h>
/* Define general object type. */ /* Define general object type. */
typedef void *object; typedef void *object;
@ -33,7 +33,7 @@ struct gc_thread_data_t {
int last_read; int last_read;
void **mark_buffer; void **mark_buffer;
int mark_buffer_len; int mark_buffer_len;
pthread_mutex_t lock; // TODO: pthread_mutex_t lock;
}; };
/* GC data structures */ /* GC data structures */