Browse Source

changes to queueing strategy for BitBurner boards

nfactor-troky
Chris Chua 11 years ago
parent
commit
2b932ccb81
  1. 9
      driver-avalon.c
  2. 2
      driver-avalon.h

9
driver-avalon.c

@ -1016,6 +1016,15 @@ static void *avalon_send_tasks(void *userdata)
mutex_unlock(&info->lock); mutex_unlock(&info->lock);
} }
if (usb_ident(avalon) == IDENT_BTB) {
// Give other threads the chance to acquire qlock
i = 0;
do {
nmsleep(40);
} while (!avalon->shutdown && i++ < 15
&& avalon->queued < avalon_get_work_count);
}
mutex_lock(&info->qlock); mutex_lock(&info->qlock);
start_count = avalon->work_array * avalon_get_work_count; start_count = avalon->work_array * avalon_get_work_count;
end_count = start_count + avalon_get_work_count; end_count = start_count + avalon_get_work_count;

2
driver-avalon.h

@ -146,7 +146,7 @@ struct avalon_info {
#define AVALON_WRITE_SIZE (sizeof(struct avalon_task)) #define AVALON_WRITE_SIZE (sizeof(struct avalon_task))
#define AVALON_READ_SIZE (sizeof(struct avalon_result)) #define AVALON_READ_SIZE (sizeof(struct avalon_result))
#define AVALON_ARRAY_SIZE 3 #define AVALON_ARRAY_SIZE 4
#define AVA_GETS_ERROR -1 #define AVA_GETS_ERROR -1
#define AVA_GETS_OK 0 #define AVA_GETS_OK 0

Loading…
Cancel
Save