Inherited by smthread_t.
Inheritance diagram for sthread_t:


All threads that perform any work on behalf of the storage manager or call any storage manager API must be an sthread_t or a class derived from sthread_t.
Storage manager threads use block/unblock methods provided by sthread, and use thread-local storage (data attributes of sthread_t).
This class also provides an os-independent API for file-system calls (open, read, write, close, etc.) used by the storage manager.
This class is a fairly thin layer over pthreads. Client threads may use pthread synchronization primitives.
Definition at line 656 of file sthread.h.
Public Types | |
| enum | status_t |
| enum | priority_t |
| enum | |
Public Member Functions | |
| w_rc_t | unblock (w_rc_t::errcode_t e) |
| virtual void | _dump (ostream &) const |
| virtual void | vtable_collect (vtable_row_t &) |
| Collect into a virtual-table row the information about this thread. | |
| bool | isStackOK (const char *file="", int line=0) const |
| bool | isStackFrameOK (size_t size=0) |
| w_rc_t | set_priority (priority_t priority) |
| pthread_t | myself () |
| void | sleep (timeout_in_ms timeout=WAIT_IMMEDIATE, const char *reason=0) |
| void | wakeup () |
| w_rc_t | join (timeout_in_ms timeout=WAIT_FOREVER) |
| w_rc_t | fork () |
| ostream & | print (ostream &) const |
| virtual | ~sthread_t () |
| w_rc_t::errcode_t | error_code () const |
Static Public Member Functions | |
| static void | initialize_sthreads_package () |
| static void | timeout_to_timespec (timeout_in_ms timeout, struct timespec &when) |
| static w_rc_t | block (pthread_mutex_t &lock, timeout_in_ms timeout=WAIT_FOREVER, sthread_list_t *list=0, const char *const caller=0, const void *id=0) |
| static w_rc_t::errcode_t | block (int4_t timeout=WAIT_FOREVER) |
| static void | dumpall (const char *, ostream &) |
| static void | dumpall (ostream &) |
| static void | dump_stats (ostream &) |
| static void | reset_stats () |
| static void | vtable_collect_names (vtable_row_t &) |
| Stuff the attribute names in this row. | |
| static int | collect (vtable_t &v, bool attr_names_too=true) |
| static void | for_each_thread (ThreadFunc &f) |
| static void | check_all_stacks (const char *file="", int line=0) |
| static sthread_t * | me () |
| static int | rand () |
| static double | drand () |
| static int | randn (int max) |
| static void | yield () |
Public Attributes | |
| void * | user |
| const id_t | id |
| sthread_stats | SthreadStats |
Static Public Attributes | |
| static const char * | status_strings [] |
| static const char * | priority_strings [] |
| static w_base_t::int8_t | max_os_file_size |
Protected Member Functions | |
| sthread_t (priority_t priority=t_regular, const char *name=0, unsigned stack_size=default_stack) | |
| virtual void | before_run () |
| virtual void | after_run () |
| void sthread_t::vtable_collect | ( | vtable_row_t & | ) | [virtual] |
Collect into a virtual-table row the information about this thread.
Collect a row of a virtual table. One row per thread. Subclasses override this.
Definition at line 118 of file vtable_sthread.cpp.
References vtable_row_t::set_int(), vtable_row_t::set_string(), and status_strings.
Here is the call graph for this function:

| int sthread_t::collect | ( | vtable_t & | v, | |
| bool | attr_names_too = true | |||
| ) | [static] |
Collect an entire table, one row per thread that the sthreads package knows about. If attr_names_too is true, the first row will be attribute names.
Definition at line 65 of file vtable_sthread.cpp.
References w_list_i< T, LOCK >::curr(), vtable_t::init(), vtable_func< T >::insert_names(), and w_list_i< T, LOCK >::next().
Here is the call graph for this function:

1.4.7