I think the Queue enqueue method should now work, and it might be the case that the only time we need to lock things is in queue.c