#include #include #include #include #include #include #include #include #include #include #include "uthash.h" #undef uthash_noexpand_fyi #define uthash_noexpand_fyi(tbl) fprintf(stderr,"warning: bucket expansion inhibited\n"); #define LOOPS 100000 #define NTHREADS 2 typedef struct { int i; int v; UT_hash_handle hh; } elt; elt *elts=NULL; /* this is our hash table which two threads will use */ pthread_rwlock_t lock; void *thread_routine( void *arg ) { int keepgoing=0; /* TODO write me */ return NULL; } int main() { unsigned i; long num_added=0; int status; pthread_t thread[NTHREADS]; void *thread_result; elt tmp, *e; if (pthread_rwlock_init(&lock,NULL) != 0) { fprintf(stderr,"lock init failed\n"); exit(-1); } /* populate it to start */ for(i=0; ii = i; e->v = 0; HASH_ADD_INT(elts, i, e); } for(i=0; i