using blocking thread-safe lists ordered by priority