select, context y mutex

Esperar en varios channels a la vez

Un handler de rastreo en vivo espera más de una cosa: una nueva coordenada GPS en un channel, o una señal de que el paseo terminó en otro, o un timeout para que nunca se quede colgado para siempre. select es un switch para operaciones de channel — se bloquea hasta que uno de sus case pueda proceder, y luego ejecuta ese.

Si varios cases están listos, select elige uno al azar. Un case default (opcional) corre de inmediato cuando nada más está listo, así puedes hacer polling sin bloquear.