Managing AP_Terrain disk access (atomically)

I’m fairly new to threads, so I have a query. I notice that in AP_Terrain, void schedule_disk_io(void) (and other related functions) runs in one thread, and void io_timer(void) (and other related functions) runs in another thread. Both threads access the volatile enum DiskIoState disk_io_state variable to coordinate disk access.

Is access to the disk_io_state enum an atomic operation? I imagine it must be to prevent race conditions.

Thanks.