what is NAFlashSemaphoreGet doing with threads ?

I use NAFlashWrite to flash via TFTP in an application (thread-x started). I’ve read that NAFlashSemaphoreGet can be replaced by a dummy nothing-do function if used in single thread environments. I use it with NAFlashSemaphoreGet, but during a flash write all other threads of my app are blocked during this time. So, what is NAFlashSemaphoreGet doing other then get a semaphore ?