Segfault fix in prefetch queue + additional macros for debugging
[IRC.git] / Robust / src / Runtime / DSTM / interface / queue.c
index 38434dc61c8a14e6f736df9ad8085ec6f8c2a13f..9f2eb419b9ff96791c3e820838a70589182ce72e 100644 (file)
@@ -28,15 +28,15 @@ void * getmemory(int size) {
     while(headoffset<tailoffset)
       ;
     //Wait for tail to go past new start
-    while(tailoffset<tmpoffset)
+    while(tailoffset<=tmpoffset)
       ;
     *((int *)(memory+headoffset))=-1;//safe because we left space
     *((int*)memory)=size+sizeof(int);
     return memory+sizeof(int);
   } else {
-    while(headoffset<tailoffset&&tailoffset<tmpoffset)
+    while(headoffset<tailoffset&&tailoffset<=tmpoffset)
       ;
-     *((int*)(memory+headoffset))=size+sizeof(int);
+    *((int*)(memory+headoffset))=size+sizeof(int);
     return memory+headoffset+sizeof(int);
   }
 }