The variable `node` shadows the parameter `node`. The access of `node->first` would not compile, because there is no member `first` in `priority_queue_t`.
Rename queue to priority queue, because that's what it is.