In GeneralMatrixMatrix.h, I can see the presence of an OpenMP unnamed critical section. The problem is that it may interfer with user unnamed critical sections, if any.
One approach to tackle the problem would be to name the critical section with a somewhat unique identifier (eigen_mat_mul_critical_section or the like). Another (perhaps better) approach would be to use locks from OpenMP.
Incidentaly, I don't see the need for an atomic update within a critical section.
hm, actually this critical section could be removed as we are already using an atomic. It seems that it has been introduced by error in the following commit:
I've just removed it: