sincronização de dados sem usar o semapore em C

Eu preciso ter sincronização de dados no meu código. Atualmente, estou acessando um valor global dentro de interrupção e também em uma função local que pode corromper os dados se a chamada de interrupção for frequente. Eu preciso evitar esse cenário. Como não estou usando o sistema operacional no meu código, não posso usar um semáforo. Usar um método de bloqueio semelhante ao semáforo pode resolver meu problema.

Qualquer ajuda seria apreciada

questionAnswers(3)

yourAnswerToTheQuestion