---
tags:
  - dev/rust
---
Utilizar "message passing" con mpsc y y oneshot para manejar todo el "Player"  
  
Esto nos permite:  
- Desacoplar el player del servidor GRPC, permitiendo que acciones del player no bloqueen el servidor  
- Poder solicitar mensajes de solo lectura de datos ya cargados sin bloquar el thread  
- Poder hacer la solicitud inicial hacia el player desde el main thread al levantar el servicio  
  
Para hacer esto, hay que separar el servidor GRPC del Player, la funcionalidad de "get_files" la debería usar el Player, no el GRPC server.  
  
El GRPC Server no debería tener lógica propia, sólo debería comunicarse con el player y manejar mensajes.  
  
[https://tokio.rs/tokio/tutorial/channels](https://tokio.rs/tokio/tutorial/channels#)