4 #include "CkFutures.decl.h"
8 \brief Futures--ways to block Converse threads on remote events.
10 These routines are implemented in ckfutures.C.
13 typedef int CkFutureID
;
14 typedef struct _CkFuture
{
20 extern "C" CkFuture
CkCreateFuture(void);
21 extern "C" void CkSendToFuture(CkFuture fut
, void *msg
);
22 extern "C" void* CkWaitFuture(CkFuture futNum
);
23 extern "C" void CkReleaseFuture(CkFuture futNum
);
24 extern "C" int CkProbeFuture(CkFuture futNum
);
26 extern "C" void* CkRemoteCall(int eIdx
, void *msg
,const CkChareID
*chare
);
27 extern "C" void* CkRemoteBranchCall(int eIdx
, void *msg
, CkGroupID gID
, int pe
);
28 extern "C" void* CkRemoteNodeBranchCall(int eIdx
, void *msg
, CkGroupID gID
, int node
);
29 extern "C" CkFutureID
CkRemoteCallAsync(int eIdx
, void *msg
, const CkChareID
*chare
);
30 extern "C" CkFutureID
CkRemoteBranchCallAsync(int eIdx
, void *msg
, CkGroupID gID
, int pe
);
31 extern "C" CkFutureID
CkRemoteNodeBranchCallAsync(int eIdx
, void *msg
, CkGroupID gID
, int node
);
33 extern "C" void* CkWaitFutureID(CkFutureID futNum
);
34 extern "C" void CkWaitVoidFuture(CkFutureID futNum
);
35 extern "C" void CkReleaseFutureID(CkFutureID futNum
);
36 extern "C" int CkProbeFutureID(CkFutureID futNum
);
37 extern "C" void CkSendToFutureID(CkFutureID futNum
, void *msg
, int pe
);
38 extern "C" CkFutureID
CkCreateAttachedFuture(void *msg
);
43 extern "C" CkFutureID
CkCreateAttachedFutureSend(void *msg
, int ep
, struct CkArrayID id
, CkArrayIndex idx
,
44 void(*fptr
)(struct CkArrayID
, CkArrayIndex
,void*,int,int),int size CK_MSGOPTIONAL
);
45 /* extern "C" CkFutureID CkCreateAttachedFutureSend(void *msg, int ep, void*,void(*fptr)(void*,void*,int,int)); */
47 extern "C" void *CkWaitReleaseFuture(CkFutureID futNum
);
49 extern "C" void _futuresModuleInit(void);