⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 srv0que.c

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 C
字号:
/******************************************************Server query execution(c) 1996 Innobase OyCreated 6/5/1996 Heikki Tuuri*******************************************************/#include "srv0que.h"#include "srv0srv.h"#include "sync0sync.h"#include "os0thread.h"#include "usr0sess.h"#include "que0que.h"/**************************************************************************Checks if there is work to do in the server task queue. If there is, thethread starts processing a task. Before leaving, it again checks the taskqueue and picks a new task if any exists. This is called by a SRV_WORKERthread. */voidsrv_que_task_queue_check(void)/*==========================*/{	que_thr_t*	thr;	for (;;) {		mutex_enter(&kernel_mutex);		thr = UT_LIST_GET_FIRST(srv_sys->tasks);		if (thr == NULL) {			mutex_exit(&kernel_mutex);			return;		}		UT_LIST_REMOVE(queue, srv_sys->tasks, thr);				mutex_exit(&kernel_mutex);		que_run_threads(thr);	}}/**************************************************************************Performs round-robin on the server tasks. This is called by a SRV_WORKERthread every second or so. */que_thr_t*srv_que_round_robin(/*================*/				/* out: the new (may be == thr) query thread				to run */	que_thr_t*	thr)	/* in: query thread */{	que_thr_t*	new_thr;	ut_ad(thr);	ut_ad(thr->state == QUE_THR_RUNNING);	mutex_enter(&kernel_mutex);		UT_LIST_ADD_LAST(queue, srv_sys->tasks, thr);	new_thr = UT_LIST_GET_FIRST(srv_sys->tasks);			mutex_exit(&kernel_mutex);	return(new_thr);}/**************************************************************************Enqueues a task to server task queue and releases a worker thread, if thereis a suspended one. */voidsrv_que_task_enqueue_low(/*=====================*/	que_thr_t*	thr)	/* in: query thread */{	ut_ad(thr);#ifdef UNIV_SYNC_DEBUG	ut_ad(mutex_own(&kernel_mutex));#endif /* UNIV_SYNC_DEBUG */	UT_LIST_ADD_LAST(queue, srv_sys->tasks, thr);	srv_release_threads(SRV_WORKER, 1);}/**************************************************************************Enqueues a task to server task queue and releases a worker thread, if thereis a suspended one. */voidsrv_que_task_enqueue(/*=================*/	que_thr_t*	thr)	/* in: query thread */{	ut_ad(thr);	ut_a(0);	/* Under MySQL this is never called */	mutex_enter(&kernel_mutex);		srv_que_task_enqueue_low(thr);		mutex_exit(&kernel_mutex);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -