| @@ -2746,7 +2746,7 @@ struct newmemstruct | |||||
| }; | }; | ||||
| static volatile struct newmemstruct *newmemory; | static volatile struct newmemstruct *newmemory; | ||||
| static int memory_initialized = 0; | |||||
| static volatile int memory_initialized = 0; | |||||
| static int memory_overflowed = 0; | static int memory_overflowed = 0; | ||||
| /* Memory allocation routine */ | /* Memory allocation routine */ | ||||
| /* procpos ... indicates where it comes from */ | /* procpos ... indicates where it comes from */ | ||||
| @@ -2791,14 +2791,12 @@ void *blas_memory_alloc(int procpos){ | |||||
| }; | }; | ||||
| void *(**func)(void *address); | void *(**func)(void *address); | ||||
| #if defined(USE_OPENMP) | |||||
| if (!memory_initialized) { | if (!memory_initialized) { | ||||
| #if defined(SMP) && !defined(USE_OPENMP) | |||||
| LOCK_COMMAND(&alloc_lock); | |||||
| if (!memory_initialized) { | |||||
| #endif | #endif | ||||
| LOCK_COMMAND(&alloc_lock); | |||||
| if (!memory_initialized) { | |||||
| #if defined(WHEREAMI) && !defined(USE_OPENMP) | #if defined(WHEREAMI) && !defined(USE_OPENMP) | ||||
| for (position = 0; position < NUM_BUFFERS; position ++){ | for (position = 0; position < NUM_BUFFERS; position ++){ | ||||
| memory[position].addr = (void *)0; | memory[position].addr = (void *)0; | ||||
| @@ -2827,12 +2825,12 @@ void *blas_memory_alloc(int procpos){ | |||||
| #endif | #endif | ||||
| memory_initialized = 1; | memory_initialized = 1; | ||||
| WMB; | |||||
| #if defined(SMP) && !defined(USE_OPENMP) | |||||
| } | } | ||||
| UNLOCK_COMMAND(&alloc_lock); | UNLOCK_COMMAND(&alloc_lock); | ||||
| #if defined(USE_OPENMP) | |||||
| } | |||||
| #endif | #endif | ||||
| } | |||||
| #ifdef DEBUG | #ifdef DEBUG | ||||
| printf("Alloc Start ...\n"); | printf("Alloc Start ...\n"); | ||||