11. Annex A: API of FairThreads

11. Annex A: API of FairThreads

Browsing

Home:
Concurrent Programming with Fair Threads
The LOFT Language

Previous chapter: Conclusion
Next chapter: Annex B: LOFT Reference Manual

Annex A: API of FairThreads


Chapters

1. Introduction
2. The Language LOFT
3. Examples - 1
4. Programming Style
5. Semantics
6. FairThreads in C
7. Implementations
8. Examples - 2
9. Related Work
10. Conclusion
11. Annex A: API of FairThreads
12. Annex B: LOFT Reference Manual
13. Annex C: the LOFT Compiler
  Glossary
  Index

Constructors


ft_scheduler_t ft_scheduler_create (void);
 
ft_thread_t    ft_thread_create    (ft_scheduler_t scheduler,
                                    void (*runnable)(void*),
                                    void (*cleanup)(void*),
                                    void *args);

ft_thread_t    ft_automaton_create (ft_scheduler_t,
                                    void (*automaton)(ft_thread_t),
                                    void (*cleanup)(void*),
                                    void *args);

ft_event_t     ft_event_create     (ft_scheduler_t scheduler);

Starting a Scheduler


int ft_scheduler_start  (ft_scheduler_t scheduler);

Control of Threads


int ft_scheduler_stop      (ft_thread_t thread);
int ft_scheduler_suspend   (ft_thread_t thread);
int ft_scheduler_resume    (ft_thread_t thread);

Broadcast of Events


int ft_scheduler_broadcast        (ft_event_t event);
int ft_scheduler_broadcast_value  (ft_event_t event,void *value);

Cooperation


int ft_thread_cooperate    (void);
int ft_thread_cooperate_n  (int num);

Termination


int ft_thread_join    (ft_thread_t thread);
int ft_thread_join_n  (ft_thread_t thread,int timeout);

Generating Events


int ft_thread_generate        (ft_event_t event);
int ft_thread_generate_value  (ft_event_t event,void *value);

Waiting Events

 
int ft_thread_await    (ft_event_t event);
int ft_thread_await_n  (ft_event_t event,int timeout);

Selecting Events

 
int ft_thread_select    (int len,ft_event_t *array,int *mask);
int ft_thread_select_n  (int len,ft_event_t *array,int *mask,int timeout);

Getting Generated Values

 
int ft_thread_get_value  (ft_event_t event,int num,void **result);

Link and Unlink

 
int ft_thread_link    (ft_scheduler_t scheduler);
int ft_thread_unlink  (void);

Current Thread and Scheduler

 
ft_thread_t     ft_thread_self       (void);
ft_scheduler_t  ft_thread_scheduler  (void);

Exit


void ft_exit  (void);

Locks

 
int ft_thread_mutex_lock    (pthread_mutex_t *mutex);
int ft_thread_mutex_unlock  (pthread_mutex_t *mutex);

Pthreads

 
pthread_t ft_pthread  (ft_thread_t thread);

Macros for Automata

 
AUTOMATON(name) 
DEFINE_AUTOMATON(name) 
BEGIN_AUTOMATON
END_AUTOMATON  
 
STATE(num)    
STATE_AWAIT(num,event) 
STATE_AWAIT_N(num,event,delay)
STATE_GET_VALUE(num,event,n,result) 
STATE_STAY(num,delay)               
STATE_JOIN(num,thread)              
STATE_JOIN_N(num,thread,delay)      
STATE_SELECT(num,n,array,mask)              
STATE_SELECT_N(num,n,array,mask,delay)
 
GOTO(num) 
GOTO_NEXT 
IMMEDIATE(num)
RETURN
 
SELF   
SET_LOCAL(data) 
LOCAL   
ARGS  
RETURN_CODE 

This page has been generated by Scribe.
Last update Wed Oct 22 18:41:04 2003