/*
* This file is part of DisOrder.
- * Copyright (C) 2007 Richard Kettlewell
+ * Copyright (C) 2007, 2008 Richard Kettlewell
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
for(;;) {
/* Get the next packet */
pthread_mutex_lock(&receive_lock);
- while(!received_packets)
+ while(!received_packets) {
pthread_cond_wait(&receive_cond, &receive_lock);
+ }
p = received_packets;
received_packets = p->next;
if(!received_packets)
* out of order then we guarantee dropouts. But for now... */
if(nsamples >= maxbuffer) {
pthread_mutex_lock(&lock);
- while(nsamples >= maxbuffer)
+ while(nsamples >= maxbuffer) {
pthread_cond_wait(&cond, &lock);
+ }
pthread_mutex_unlock(&lock);
}
/* Add the packet to the receive queue */
while(nsamples)
drop_first_packet();
info("Buffering...");
- while(nsamples < readahead)
+ while(nsamples < readahead) {
pthread_cond_wait(&cond, &lock);
+ }
next_timestamp = pheap_first(&packets)->timestamp;
active = 1;
}