L'ultima opzione è quella che ti avevo enunciato già nella prima risposta ossia "ogni tanto" in alcuni punti a tua scelta
in LinearMobility.cc scrivi:
codice:
   if (pos.x < 30)
      PingApp_invia(pos);
passando la posizione come argomento della funzione. Se non usi i thread non avrebbe senso che condividi pos in altra maniera.

Il tuo processore sta eseguendo 1 istruzione alla volta in LinearMobility.cc e quindi sei tu a decidere quando controllare e inviare pos. Non ci sono alternative. L'unica altra alternativa e usare i thread (nel qual caso dovresti sicuramente usare anche i mutex, vedi http://it.wikipedia.org/wiki/Mutex)