Maestro Open Toolkit: System-Independent Threads Interface of Ensemble

This document is a part of online Ensemble documentation, under Maestro Open Toolkit.


Threads

typedef struct {
  int stacksize;
} hot_thread_attr_t;

// Create a new thread.  Returns 0 if OK.
hot_err_t hot_thread_Create(void (*routine)(void*), 
			    void *arg,
			    hot_thread_attr_t *attr);


Locks


// Obscured type
typedef void* hot_lock_t;

// Create a new lock.  Returns 0 if OK.
hot_err_t hot_lck_Create(/*OUT*/hot_lock_t*);

// Destroy a lock.  Returns 0 if OK.
hot_err_t hot_lck_Destroy(hot_lock_t);

// Acquire a lock.  Return 0 if OK.
hot_err_t hot_lck_Lock(hot_lock_t);

// Release a lock.  Return 0 if OK.
hot_err_t hot_lck_Unlock(hot_lock_t);


Semaphores


// Obscured type
typedef void* hot_sema_t;

// Create a semaphore.  Returns 0 if OK.
hot_err_t hot_sema_Create(int initial_value, /*OUT*/ hot_sema_t *semap);

// Destroy a semaphore.  Returns 0 if OK.
hot_err_t hot_sema_Destroy(hot_sema_t sema);

// Increase the value of a semaphore.  Returns 0 if OK.
hot_err_t hot_sema_Inc(hot_sema_t sema);

// Decrease the value of a semapghore (may block).  Returns 0 if OK.
hot_err_t hot_sema_Dec(hot_sema_t sema);


send mail to alexey@cs.cornell.edu