#include "srv0que.h"#include "srv0srv.h"#include "sync0sync.h"#include "os0thread.h"#include "usr0sess.h"#include "que0que.h"Include dependency graph for srv0que.c:

Go to the source code of this file.
Functions | |
| void | srv_que_task_queue_check (void) |
| que_thr_t * | srv_que_round_robin (que_thr_t *thr) |
| void | srv_que_task_enqueue_low (que_thr_t *thr) |
| void | srv_que_task_enqueue (que_thr_t *thr) |
Definition at line 53 of file srv0que.c.
References kernel_mutex, mutex_enter, mutex_exit(), QUE_THR_RUNNING, queue, srv_sys, que_thr_struct::state, srv_sys_struct::tasks, ut_ad, UT_LIST_ADD_LAST, and UT_LIST_GET_FIRST.
00055 : the new (may be == thr) query thread 00056 to run */ 00057 que_thr_t* thr) /* in: query thread */ 00058 { 00059 que_thr_t* new_thr; 00060 00061 ut_ad(thr); 00062 ut_ad(thr->state == QUE_THR_RUNNING); 00063 00064 mutex_enter(&kernel_mutex); 00065 00066 UT_LIST_ADD_LAST(queue, srv_sys->tasks, thr); 00067 00068 new_thr = UT_LIST_GET_FIRST(srv_sys->tasks); 00069 00070 mutex_exit(&kernel_mutex); 00071 00072 return(new_thr); 00073 }
Here is the call graph for this function:

| void srv_que_task_enqueue | ( | que_thr_t * | thr | ) |
Definition at line 100 of file srv0que.c.
References kernel_mutex, mutex_enter, mutex_exit(), srv_que_task_enqueue_low(), ut_a, and ut_ad.
00102 : query thread */ 00103 { 00104 ut_ad(thr); 00105 00106 ut_a(0); /* Under MySQL this is never called */ 00107 00108 mutex_enter(&kernel_mutex); 00109 00110 srv_que_task_enqueue_low(thr); 00111 00112 mutex_exit(&kernel_mutex); 00113 }
Here is the call graph for this function:

| void srv_que_task_enqueue_low | ( | que_thr_t * | thr | ) |
Definition at line 80 of file srv0que.c.
References kernel_mutex, queue, srv_release_threads(), srv_sys, SRV_WORKER, srv_sys_struct::tasks, ut_ad, and UT_LIST_ADD_LAST.
Referenced by que_fork_error_handle(), que_thr_dec_refer_count(), que_thr_end_wait(), srv_que_task_enqueue(), and trx_rollback().
00082 : query thread */ 00083 { 00084 ut_ad(thr); 00085 00086 #ifdef UNIV_SYNC_DEBUG 00087 ut_ad(mutex_own(&kernel_mutex)); 00088 #endif /* UNIV_SYNC_DEBUG */ 00089 00090 UT_LIST_ADD_LAST(queue, srv_sys->tasks, thr); 00091 00092 srv_release_threads(SRV_WORKER, 1); 00093 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void srv_que_task_queue_check | ( | void | ) |
Definition at line 24 of file srv0que.c.
References kernel_mutex, mutex_enter, mutex_exit(), NULL, que_run_threads(), queue, srv_sys, srv_sys_struct::tasks, UT_LIST_GET_FIRST, and UT_LIST_REMOVE.
00026 { 00027 que_thr_t* thr; 00028 00029 for (;;) { 00030 mutex_enter(&kernel_mutex); 00031 00032 thr = UT_LIST_GET_FIRST(srv_sys->tasks); 00033 00034 if (thr == NULL) { 00035 mutex_exit(&kernel_mutex); 00036 00037 return; 00038 } 00039 00040 UT_LIST_REMOVE(queue, srv_sys->tasks, thr); 00041 00042 mutex_exit(&kernel_mutex); 00043 00044 que_run_threads(thr); 00045 } 00046 }
Here is the call graph for this function:

1.4.7

