亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ipc.c

?? PostgreSQL 8.1.4的源碼 適用于Linux下的開源數據庫系統
?? C
字號:
/*------------------------------------------------------------------------- * * ipc.c *	  POSTGRES inter-process communication definitions. * * This file is misnamed, as it no longer has much of anything directly * to do with IPC.	The functionality here is concerned with managing * exit-time cleanup for either a postmaster or a backend. * * * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * * IDENTIFICATION *	  $PostgreSQL: pgsql/src/backend/storage/ipc/ipc.c,v 1.91.2.1 2005/11/22 18:23:18 momjian Exp $ * *------------------------------------------------------------------------- */#include "postgres.h"#include <errno.h>#include <signal.h>#include <unistd.h>#include "miscadmin.h"#include "storage/ipc.h"/* * This flag is set during proc_exit() to change ereport()'s behavior, * so that an ereport() from an on_proc_exit routine cannot get us out * of the exit procedure.  We do NOT want to go back to the idle loop... */bool		proc_exit_inprogress = false;/* ---------------------------------------------------------------- *						exit() handling stuff * * These functions are in generally the same spirit as atexit(2), * but provide some additional features we need --- in particular, * we want to register callbacks to invoke when we are disconnecting * from a broken shared-memory context but not exiting the postmaster. * * Callback functions can take zero, one, or two args: the first passed * arg is the integer exitcode, the second is the Datum supplied when * the callback was registered. * ---------------------------------------------------------------- */#define MAX_ON_EXITS 20static struct ONEXIT{	void		(*function) (int code, Datum arg);	Datum		arg;}	on_proc_exit_list[MAX_ON_EXITS], on_shmem_exit_list[MAX_ON_EXITS];static int	on_proc_exit_index,			on_shmem_exit_index;/* ---------------------------------------------------------------- *		proc_exit * *		this function calls all the callbacks registered *		for it (to free resources) and then calls exit. *		This should be the only function to call exit(). *		-cim 2/6/90 * ---------------------------------------------------------------- */voidproc_exit(int code){	/*	 * Once we set this flag, we are committed to exit.  Any ereport() will	 * NOT send control back to the main loop, but right back here.	 */	proc_exit_inprogress = true;	/*	 * Forget any pending cancel or die requests; we're doing our best to	 * close up shop already.  Note that the signal handlers will not set	 * these flags again, now that proc_exit_inprogress is set.	 */	InterruptPending = false;	ProcDiePending = false;	QueryCancelPending = false;	/* And let's just make *sure* we're not interrupted ... */	ImmediateInterruptOK = false;	InterruptHoldoffCount = 1;	CritSectionCount = 0;	elog(DEBUG3, "proc_exit(%d)", code);	/* do our shared memory exits first */	shmem_exit(code);	/*	 * call all the callbacks registered before calling exit().	 *	 * Note that since we decrement on_proc_exit_index each time, if a	 * callback calls ereport(ERROR) or ereport(FATAL) then it won't be	 * invoked again when control comes back here (nor will the	 * previously-completed callbacks).  So, an infinite loop should not be	 * possible.	 */	while (--on_proc_exit_index >= 0)		(*on_proc_exit_list[on_proc_exit_index].function) (code,								  on_proc_exit_list[on_proc_exit_index].arg);	elog(DEBUG3, "exit(%d)", code);	exit(code);}/* ------------------ * Run all of the on_shmem_exit routines --- but don't actually exit. * This is used by the postmaster to re-initialize shared memory and * semaphores after a backend dies horribly. * ------------------ */voidshmem_exit(int code){	elog(DEBUG3, "shmem_exit(%d)", code);	/*	 * call all the registered callbacks.	 *	 * As with proc_exit(), we remove each callback from the list before	 * calling it, to avoid infinite loop in case of error.	 */	while (--on_shmem_exit_index >= 0)		(*on_shmem_exit_list[on_shmem_exit_index].function) (code,								on_shmem_exit_list[on_shmem_exit_index].arg);	on_shmem_exit_index = 0;}/* ---------------------------------------------------------------- *		on_proc_exit * *		this function adds a callback function to the list of *		functions invoked by proc_exit().	-cim 2/6/90 * ---------------------------------------------------------------- */void			on_proc_exit(void (*function) (int code, Datum arg), Datum arg){	if (on_proc_exit_index >= MAX_ON_EXITS)		ereport(FATAL,				(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),				 errmsg_internal("out of on_proc_exit slots")));	on_proc_exit_list[on_proc_exit_index].function = function;	on_proc_exit_list[on_proc_exit_index].arg = arg;	++on_proc_exit_index;}/* ---------------------------------------------------------------- *		on_shmem_exit * *		this function adds a callback function to the list of *		functions invoked by shmem_exit().	-cim 2/6/90 * ---------------------------------------------------------------- */void			on_shmem_exit(void (*function) (int code, Datum arg), Datum arg){	if (on_shmem_exit_index >= MAX_ON_EXITS)		ereport(FATAL,				(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),				 errmsg_internal("out of on_shmem_exit slots")));	on_shmem_exit_list[on_shmem_exit_index].function = function;	on_shmem_exit_list[on_shmem_exit_index].arg = arg;	++on_shmem_exit_index;}/* ---------------------------------------------------------------- *		on_exit_reset * *		this function clears all on_proc_exit() and on_shmem_exit() *		registered functions.  This is used just after forking a backend, *		so that the backend doesn't believe it should call the postmaster's *		on-exit routines when it exits... * ---------------------------------------------------------------- */voidon_exit_reset(void){	on_shmem_exit_index = 0;	on_proc_exit_index = 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人在线综合网| 91偷拍与自偷拍精品| 高清beeg欧美| 欧美午夜视频网站| 欧美国产综合一区二区| 日韩精品一二区| 99久久精品免费| 精品国产乱码久久久久久夜甘婷婷 | 国产成人精品亚洲日本在线桃色| 丁香六月久久综合狠狠色| 欧美疯狂性受xxxxx喷水图片| 中文av一区特黄| 国产在线日韩欧美| 欧美男同性恋视频网站| 中文字幕一区二区三区色视频| 久久电影网站中文字幕| 欧美绝品在线观看成人午夜影视| 亚洲精品伦理在线| 99久久久精品免费观看国产蜜| 久久这里只有精品首页| 日韩国产精品大片| 欧美午夜片在线观看| 一区二区三区在线不卡| 91在线播放网址| 国产精品嫩草久久久久| 粉嫩aⅴ一区二区三区四区| 欧美tickling网站挠脚心| 奇米888四色在线精品| 欧美日韩国产乱码电影| 亚洲一区二区中文在线| 欧美亚洲自拍偷拍| 亚洲一区在线看| 欧美日韩精品一区二区| 亚洲成人av在线电影| 欧美日韩国产精品成人| 午夜激情综合网| 91精品国产麻豆| 麻豆国产精品一区二区三区| 欧美一区二区三区免费观看视频| 日本不卡在线视频| 在线成人高清不卡| 久久成人久久爱| 精品国产3级a| 丁香一区二区三区| 亚洲欧洲精品一区二区三区| 91免费观看国产| 亚洲一区在线视频观看| 91精品国产福利在线观看| 日韩和欧美一区二区| 欧美电视剧在线看免费| 国产一区二区三区在线观看免费视频| 精品国产区一区| 丁香一区二区三区| 亚洲一区二区美女| 日韩色视频在线观看| 国产精品影音先锋| 亚洲欧美激情视频在线观看一区二区三区| 91玉足脚交白嫩脚丫在线播放| 亚洲一区二区三区视频在线播放| 日韩亚洲欧美成人一区| 国产福利不卡视频| 亚洲欧洲国产日韩| 欧美久久久一区| 国产精品18久久久久| 亚洲免费观看高清在线观看| 91麻豆精品国产91久久久更新时间| 精品一区二区成人精品| 亚洲欧洲日韩综合一区二区| 欧美吻胸吃奶大尺度电影| 国产精品资源在线观看| 亚洲一区二区四区蜜桃| 久久人人爽人人爽| 欧洲视频一区二区| 国产精品亚洲午夜一区二区三区 | 国产日韩精品一区二区三区| 色88888久久久久久影院野外 | 亚洲图片自拍偷拍| 欧美精品一区二区精品网| 97se亚洲国产综合自在线不卡| 午夜精品国产更新| 亚洲人成在线观看一区二区| 日韩精品一区在线| 色88888久久久久久影院野外| 久久国产剧场电影| 亚洲国产综合人成综合网站| 国产精品视频免费| 精品理论电影在线观看 | 亚洲国产毛片aaaaa无费看| 2022国产精品视频| 7777精品伊人久久久大香线蕉最新版| 成人黄色av电影| 国产一区二区三区在线观看免费视频 | 91蜜桃在线免费视频| 久久99精品久久久| 丝袜美腿亚洲一区| 亚洲综合色噜噜狠狠| 中文字幕一区二区三区色视频| 日韩欧美在线不卡| 欧美年轻男男videosbes| 一本一本久久a久久精品综合麻豆| 国产一区二区三区久久久 | 在线成人高清不卡| 91黄色小视频| 一本色道亚洲精品aⅴ| 成人动漫视频在线| 成人激情免费网站| 粉嫩欧美一区二区三区高清影视| 久久69国产一区二区蜜臀| 天天色天天操综合| 亚洲高清不卡在线| 亚洲电影一级片| 一区二区三区日韩欧美| 亚洲视频每日更新| 亚洲男人的天堂一区二区| 亚洲视频在线观看三级| 亚洲欧美一区二区三区极速播放| 国产精品久久久久久妇女6080| 国产精品色在线| 中文字幕一区二区日韩精品绯色| 国产精品久久二区二区| 中文字幕在线观看一区| 亚洲日本在线天堂| 亚洲黄色在线视频| 亚洲成人午夜电影| 日本亚洲最大的色成网站www| 麻豆一区二区在线| 韩日精品视频一区| 国产成人在线网站| 成人精品免费视频| 91麻豆swag| 精品视频在线看| 日韩区在线观看| 国产色一区二区| 综合久久久久综合| 午夜精品福利一区二区蜜股av| 日本欧美一区二区三区乱码| 极品尤物av久久免费看| 成人黄色小视频| 欧美日韩日本视频| 精品国产污污免费网站入口| 中文字幕乱码久久午夜不卡 | 色哟哟日韩精品| 18成人在线视频| 一区二区三区日韩精品视频| 蜜桃视频在线观看一区二区| 国产精品亚洲成人| 91捆绑美女网站| 欧美一级高清片| 久久久久一区二区三区四区| 亚洲日本青草视频在线怡红院 | 在线成人av影院| 中文字幕精品在线不卡| 亚洲国产日韩a在线播放| 久久精品免费看| 91女人视频在线观看| 日韩欧美色综合| 亚洲欧美日韩一区| 狠狠久久亚洲欧美| 欧美日韩成人综合在线一区二区| 久久蜜桃av一区二区天堂 | 国产精品亚洲人在线观看| 色婷婷精品久久二区二区蜜臀av| 欧美一区二区三区日韩| 中文字幕日韩欧美一区二区三区| 日韩av一区二| 色综合久久中文字幕| 国产亚洲综合在线| 奇米色777欧美一区二区| 91在线porny国产在线看| 久久精品综合网| 日韩二区三区在线观看| 色狠狠av一区二区三区| 欧美经典一区二区| 美脚の诱脚舐め脚责91 | 99久久精品国产麻豆演员表| 日韩欧美你懂的| 天天综合色天天| 欧美影院一区二区三区| 国产精品久久久99| 国产福利精品一区| 2023国产精品自拍| 蜜臂av日日欢夜夜爽一区| 在线视频综合导航| 1024精品合集| 不卡一区二区三区四区| 久久人人爽爽爽人久久久| 另类的小说在线视频另类成人小视频在线| 91蝌蚪国产九色| 亚洲欧洲日韩av| 99re这里只有精品视频首页| 国产亚洲欧洲997久久综合| 激情综合网最新| 欧美tk—视频vk| 国产在线视视频有精品| 2020国产精品自拍| 国产精品77777| 国产日韩欧美电影| 99视频国产精品| 亚洲视频一区二区在线| 色香蕉久久蜜桃|