doc: Add serial to list of ci file reserved words
[charm.git] / src / conv-core / futures.c
index 357037af0391d0025044fbde897ce933f5cae001..f81aa3c6f16c63d8f34d82e244495b675c40d2bb 100644 (file)
@@ -1,3 +1,5 @@
+#include <stdlib.h>
+#include <string.h>
 #include "converse.h"
 
 typedef struct Cfuture_data_s
 #include "converse.h"
 
 typedef struct Cfuture_data_s
@@ -17,7 +19,7 @@ typedef struct CfutureValue_s
 }
 *CfutureValue;
 
 }
 *CfutureValue;
 
-#define field_offset(t, f) ((int)(((t)0)->f))
+#define field_offset(t, f) ((size_t)(((t)0)->f))
 #define void_to_value(v) ((CfutureValue)(((char*)v)-field_offset(CfutureValue,rest)))
 
 CpvDeclare(int, CfutureStoreIndex);
 #define void_to_value(v) ((CfutureValue)(((char*)v)-field_offset(CfutureValue,rest)))
 
 CpvDeclare(int, CfutureStoreIndex);
@@ -26,6 +28,7 @@ Cfuture CfutureCreate()
 {
   futdata data = (futdata)malloc(sizeof(struct Cfuture_data_s));
   Cfuture result;
 {
   futdata data = (futdata)malloc(sizeof(struct Cfuture_data_s));
   Cfuture result;
+  _MEMCHECK(data);
   data->value = 0;
   data->ready = 0;
   data->waiters = 0;
   data->value = 0;
   data->ready = 0;
   data->waiters = 0;
@@ -46,7 +49,6 @@ static void CfutureAwaken(futdata data, CfutureValue val)
 
 static void CfutureStore(CfutureValue m)
 {
 
 static void CfutureStore(CfutureValue m)
 {
-  CmiGrabBuffer(&m);
   CfutureAwaken(m->data, m);
 }
 
   CfutureAwaken(m->data, m);
 }
 
@@ -61,14 +63,12 @@ void *CfutureCreateBuffer(int bytes)
 
 void CfutureDestroyBuffer(void *v)
 {
 
 void CfutureDestroyBuffer(void *v)
 {
-  CfutureValue value = void_to_value(v);
   CmiFree(v);
 }
 
 void CfutureStoreBuffer(Cfuture f, void *value)
 {
   CfutureValue m = void_to_value(value);
   CmiFree(v);
 }
 
 void CfutureStoreBuffer(Cfuture f, void *value)
 {
   CfutureValue m = void_to_value(value);
-  futdata data;
   if (f.pe == CmiMyPe()) {
     CfutureAwaken(f.data, m);
   } else {
   if (f.pe == CmiMyPe()) {
     CfutureAwaken(f.data, m);
   } else {
@@ -119,5 +119,5 @@ void CfutureDestroy(Cfuture f)
 void CfutureModuleInit()
 {
   CpvInitialize(int, CfutureStoreIndex);
 void CfutureModuleInit()
 {
   CpvInitialize(int, CfutureStoreIndex);
-  CpvAccess(CfutureStoreIndex) = CmiRegisterHandler(CfutureStore);
+  CpvAccess(CfutureStoreIndex) = CmiRegisterHandler((CmiHandler)CfutureStore);
 }
 }