diff options
Diffstat (limited to 'innobase/include/os0thread.h')
-rw-r--r-- | innobase/include/os0thread.h | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/innobase/include/os0thread.h b/innobase/include/os0thread.h new file mode 100644 index 00000000000..2b2d9fb4bd6 --- /dev/null +++ b/innobase/include/os0thread.h @@ -0,0 +1,121 @@ +/****************************************************** +The interface to the operating system +process and thread control primitives + +(c) 1995 Innobase Oy + +Created 9/8/1995 Heikki Tuuri +*******************************************************/ + +#ifndef os0thread_h +#define os0thread_h + +#include "univ.i" + +/* Maximum number of threads which can be created in the program */ +#define OS_THREAD_MAX_N 1000 + +/* Possible fixed priorities for threads */ +#define OS_THREAD_PRIORITY_NONE 100 +#define OS_THREAD_PRIORITY_BACKGROUND 1 +#define OS_THREAD_PRIORITY_NORMAL 2 +#define OS_THREAD_PRIORITY_ABOVE_NORMAL 3 + +#ifdef __WIN__ +typedef void* os_thread_t; +#else +typedef pthread_t os_thread_t; +#endif +typedef unsigned long int os_thread_id_t; + +/******************************************************************** +Creates a new thread of execution. The execution starts from +the function given. The start function takes a void* parameter +and returns a ulint. */ + +os_thread_t +os_thread_create( +/*=============*/ + /* out: handle to the thread */ + ulint (*start_f)(void*), /* in: pointer to function + from which to start */ + void* arg, /* in: argument to start + function */ + os_thread_id_t* thread_id); /* out: id of created + thread */ +/********************************************************************* +A thread calling this function ends its execution. */ + +void +os_thread_exit( +/*===========*/ + ulint code); /* in: exit code */ +/********************************************************************* +Returns the thread identifier of current thread. */ + +os_thread_id_t +os_thread_get_curr_id(void); +/*========================*/ +/********************************************************************* +Returns handle to the current thread. */ + +os_thread_t +os_thread_get_curr(void); +/*====================*/ +/********************************************************************* +Converts a thread id to a ulint. */ + +ulint +os_thread_conv_id_to_ulint( +/*=======================*/ + /* out: converted to ulint */ + os_thread_id_t id); /* in: thread id */ +/********************************************************************* +Waits for a thread to terminate. */ + +void +os_thread_wait( +/*===========*/ + os_thread_t thread); /* in: thread to wait */ +/********************************************************************* +Advises the os to give up remainder of the thread's time slice. */ + +void +os_thread_yield(void); +/*=================*/ +/********************************************************************* +The thread sleeps at least the time given in microseconds. */ + +void +os_thread_sleep( +/*============*/ + ulint tm); /* in: time in microseconds */ +/********************************************************************** +Gets a thread priority. */ + +ulint +os_thread_get_priority( +/*===================*/ + /* out: priority */ + os_thread_t handle);/* in: OS handle to the thread */ +/********************************************************************** +Sets a thread priority. */ + +void +os_thread_set_priority( +/*===================*/ + os_thread_t handle, /* in: OS handle to the thread */ + ulint pri); /* in: priority: one of OS_PRIORITY_... */ +/********************************************************************** +Gets the last operating system error code for the calling thread. */ + +ulint +os_thread_get_last_error(void); +/*==========================*/ + + +#ifndef UNIV_NONINL +#include "os0thread.ic" +#endif + +#endif |