Added commit() call to inner while loop of linearHashNTAWriteRequests.c

This commit is contained in:
Sears Russell 2005-03-14 20:04:44 +00:00
parent 6547cadfc6
commit f5ff26b233
2 changed files with 34 additions and 6 deletions

View file

@ -49,7 +49,7 @@ static void * go (void * arg_ptr) {
int k = *(int*)arg_ptr;
int j;
int xid = Tbegin();
int xid;// = Tbegin();
double sum_x_squared = 0;
double sum = 0;
@ -98,7 +98,7 @@ static void * go (void * arg_ptr) {
assert(timeout.tv_nsec <= start.tv_nsec || timeout.tv_sec < start.tv_sec);
*/
xid = Tbegin();
ThashInsert(xid, hash, (byte*)&j, sizeof(int), (byte*)&j, sizeof(int));
@ -202,7 +202,7 @@ int main(int argc, char** argv) {
pthread_cond_init(&never, NULL);
pthread_attr_setstacksize (&attr, PTHREAD_STACK_MIN);
pthread_attr_setschedpolicy(&attr, SCHED_FIFO);
// pthread_attr_setschedpolicy(&attr, SCHED_FIFO);
pthread_mutex_lock(&mutex);

View file

@ -64,19 +64,47 @@ terms specified in this license.
*/
#define NUM_ENTRIES 10000
#define NUM_ENTRIES 10000
#define NUM_THREADS 100
START_TEST(multiplexTest) {
Tinit();
int xid = Tbegin();
recordid hash;
lladdIterator_t * it = ThashGenericIterator(xid, hash);
lladdFifoPool_t * fifoPool = fifoPool_ringBufferInit(100, 10000);
lladdFifoPool_t * fifoPool = fifoPool_ringBufferInit(NUM_THREADS, NUM_ENTRIES);
lladdMultiplexer_t * mux = lladdMultiplexer_alloc(xid, it, &multiplexHashLogByKey, &fifoPool_getConsumerCRC32, fifoPool);
// now, read from fifos, checking to see if everything is well. (Need to spawn one thread per fifo.)
int i;
/* threads have static thread sizes. Ughh. */
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_mutex_init(&mutex, NULL);
pthread_cond_init(&never, NULL);
pthread_attr_setstacksize (&attr, PTHREAD_STACK_MIN);
pthread_attr_setschedpolicy(&attr, SCHED_FIFO);
pthread_mutex_lock(&mutex);
pthread_t * workers = malloc(sizeof(pthread_t) * fifoPool->fifoCount);
for(i = 0 ; i < fifoPool->fifoCount; i++) {
lladdConsumer_t * consumer = fifoPool->pool[i]->consumer;
pthread_create(&workers[i], &attr, go, consumer);
}
pthread_mutex_unlock(&mutex);
for(i = 0; i < fifoPool->fifoCount; i++) {
pthread_join(&workers[i], NULL);
}
} END_TEST