Use lfence instead of mfence

mfence is more than needed, and incurs unnecessary overhead. So instead
opt to use lfence when possible.

Also changed the macro to look like a function. Felt better this way.