Si però ci sara una sincronizzazione tra i 2 moduli, a meno che siano 2 thread, cosa a cui non hai accennato.

Se NON sono 2 thread e l'esecuzione mettiamo si trova nel modulo 1 nella funzione modulo1_calcola non puoi fare così?

codice:
void modulo1_calcola()
{
  ... fine elaborazioni varie ...

   if (pos.x < 30)
      modulo2_invia(pos);
}
Se invece modulo1 e modulo2 sono 2 thread è diverso ma dovresti specificarlo.