00001 #ifndef FUTURES_H
00002 #define FUTURES_H
00003
00004 #include <qthread/qthread.h>
00005
00006 Q_STARTCXX
00007 void future_fork(qthread_f func,
00008 void *arg,
00009 aligned_t * retval);
00010 void future_fork_to(qthread_f fptr,
00011 void *arg,
00012 aligned_t * retval,
00013 qthread_shepherd_id_t shep);
00014 void future_fork_syncvar_to(qthread_f fptr,
00015 void *arg,
00016 syncvar_t * retval,
00017 qthread_shepherd_id_t shep);
00018
00019 void future_join_all(
00020 qthread_t * me,
00021 aligned_t * fta,
00022 int ftc);
00023
00024 void future_init(int vp_per_loc);
00025
00026 void future_exit(qthread_t * me);
00027
00028 int future_yield(qthread_t * me);
00029 void future_acquire(qthread_t * me);
00030
00031 Q_ENDCXX
00032 #ifdef __cplusplus
00033 #include <qthread/loop_templates.hpp>
00034 #endif
00035 #endif