Не понимаю почему в такой простой функции все привязались к посылке сообщения для синхронизации? Здесь хватит обычного лока. Только доступ к значению переменной надо организовать через функцию.
Если это не подходит, то да, нужна посылка сообщения. Управление вернётся когда переменная уже изменена. Но здесь надо быть уверенным, что никто другой в это время её не изменяет.