LRTS Comm Thread Tracing in message recieve
[charm.git] / src / ck-core / ckfutures.h
blob0c67aa4253d46abeca57775a01374aa4c4bbf3cc
1 #ifndef _CKFUTURES_H_
2 #define _CKFUTURES_H_
4 #include "CkFutures.decl.h"
6 /**
7 \addtogroup CkFutures
8 \brief Futures--ways to block Converse threads on remote events.
10 These routines are implemented in ckfutures.C.
12 /*@{*/
13 typedef int CkFutureID;
14 typedef struct _CkFuture {
15 CkFutureID id;
16 int pe;
17 } CkFuture;
18 PUPbytes(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);
40 /* forward declare */
41 struct CkArrayID;
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);
51 #endif