Si todo lo que tiene es dispatch_queue_t
que le pasó a usted "otra persona", no hay forma de que usted lo sepa. Esa información está efectivamente oculta de usted. Si está creando las colas usted mismo, puede usar dispatch_queue_set_specific
y dispatch_queue_get_specific
para esconder un valor en los datos de contexto de la cola, y luego leerlo, pero si no está creando la cola, no tiene suerte.
FWIW, este tipo de sugerencias en un diseño frágil/antipatrón. Tomar una cola como parámetro implica que programaría bloques para su futura ejecución en esa cola. Desde esa perspectiva, no debería importar si la cola es concurrente o serial.
Más al punto, su código debe escribirse de manera que no importe si se ejecuta en una cola serial o concurrente. Si utiliza recursos compartidos, entonces debe sincronizar el acceso a esos recursos de manera que si se ejecutara en una cola concurrente, el acceso a esos recursos sería seguro. Por el contrario, evite situaciones en las que correr en una cola en serie sería un problema (es decir, no intente lograr bloqueos recursivos usando dispatch_sync
con una cola que podría ser en serie.)
¡He descubierto otro regalo de GCD! ¡Gracias! Después de leer un poco de literatura, he llegado a la conclusión de que este es realmente un buen enfoque. :-) –