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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? ipc.c

?? PostgreSQL7.4.6 for Linux
?? C
字號(hào):
/*------------------------------------------------------------------------- * * 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-2003, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * * IDENTIFICATION *	  $Header: /cvsroot/pgsql/src/backend/storage/ipc/ipc.c,v 1.85 2003/08/04 02:40:03 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) ();	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) (), 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) (), 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;}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线视频国内自拍亚洲视频| 欧美日韩国产欧美日美国产精品| 欧美精品久久一区| 亚洲欧美国产三级| 日韩欧美高清在线| 精品av久久707| 国产清纯在线一区二区www| 欧美日韩一区三区| 欧美一区二区三区视频免费播放 | 久久香蕉国产线看观看99| 亚洲成人综合视频| 国产成都精品91一区二区三| 成人免费视频国产在线观看| 91视频一区二区| 91精品国产综合久久婷婷香蕉| 精品国产免费一区二区三区四区| 欧美一区二区三区系列电影| 亚洲欧美在线高清| 亚洲国产一二三| 美女视频免费一区| 欧美日韩一区二区在线观看| 日韩激情中文字幕| 成人午夜伦理影院| 欧美日韩激情一区二区三区| 亚洲精品一区二区三区影院| 日本不卡在线视频| 91一区一区三区| 制服丝袜亚洲网站| 午夜精品aaa| av男人天堂一区| 国产91露脸合集magnet| 免费视频一区二区| 欧美人成免费网站| 亚洲成人黄色小说| 成人精品在线视频观看| 久久久久国产一区二区三区四区| 成人av网站免费观看| 中国色在线观看另类| 懂色av噜噜一区二区三区av| 老司机午夜精品| 成人精品视频.| 欧美日精品一区视频| 日本大香伊一区二区三区| 国产精品88888| 理论片日本一区| 亚洲欧洲精品天堂一级| 日韩欧美你懂的| 91精品国产麻豆| 亚洲高清三级视频| 26uuu国产在线精品一区二区| 国产成人综合网站| 午夜电影一区二区三区| 久久国产精品免费| 欧美亚洲免费在线一区| 成人午夜av电影| 777午夜精品视频在线播放| 亚洲欧美乱综合| 国产高清成人在线| 26uuu国产日韩综合| 免费观看一级特黄欧美大片| 欧美视频在线观看一区| 1区2区3区精品视频| 激情成人综合网| 欧美一区二区视频在线观看2022| 亚洲激情在线激情| 暴力调教一区二区三区| 成人国产精品免费| 欧美性色黄大片| 亚洲三级久久久| 色综合久久久网| 综合色中文字幕| 国产69精品久久久久毛片| 久久嫩草精品久久久精品| 国产寡妇亲子伦一区二区| 久久日韩粉嫩一区二区三区| 三级成人在线视频| 亚洲日本va在线观看| a亚洲天堂av| 国产精品福利一区二区| 成人精品国产免费网站| 国产精品毛片久久久久久| 国产乱码精品一区二区三区av| 国产乱子伦一区二区三区国色天香| 欧美一级在线观看| 麻豆一区二区在线| 欧美不卡视频一区| 亚洲另类一区二区| 国产在线麻豆精品观看| 亚洲精品日日夜夜| 丝袜脚交一区二区| 韩国成人福利片在线播放| 欧美日韩国产高清一区二区三区| 五月婷婷久久综合| 欧美日韩一区在线| 成人av在线电影| 欧美网站大全在线观看| 国产午夜一区二区三区| 国产美女主播视频一区| 精品久久久久久久久久久久久久久久久 | 国产精品99久久不卡二区| ●精品国产综合乱码久久久久| 欧美日韩三级一区| 在线精品国精品国产尤物884a| 国产呦精品一区二区三区网站| 亚洲福利电影网| 一区二区三区免费在线观看| 国产精品麻豆久久久| 26uuu另类欧美| 久久综合久久综合久久| 久久久久久久久久久99999| 日韩免费看网站| 久久色成人在线| 国产精品二区一区二区aⅴ污介绍| 一个色在线综合| 国产成人一区二区精品非洲| 欧美一区三区二区| jlzzjlzz亚洲日本少妇| 青青青爽久久午夜综合久久午夜| 国产亚洲成年网址在线观看| 777xxx欧美| 欧美午夜精品理论片a级按摩| 色偷偷久久一区二区三区| 99re8在线精品视频免费播放| 精品国产一二三| 成人影视亚洲图片在线| 国产精品福利一区| 国产一区美女在线| 久久精品国产77777蜜臀| 日韩制服丝袜av| 亚洲国产精品久久久久秋霞影院| 欧美一区二区三区在线视频| 91网站视频在线观看| 国产很黄免费观看久久| 久久国产精品色婷婷| 蜜臀av在线播放一区二区三区| 日韩电影在线观看网站| 亚洲丰满少妇videoshd| 国产精品久久久久久久久免费桃花| 久久美女高清视频| 亚洲三级视频在线观看| 性做久久久久久久免费看| 国产精品私人影院| 精品一区二区免费视频| 国产在线不卡一区| 国产成人在线免费观看| 在线免费观看日韩欧美| 国产精品欧美一级免费| 琪琪久久久久日韩精品| 国产精品77777| 成人影视亚洲图片在线| 欧美综合在线视频| 日韩精品专区在线影院重磅| 中文一区二区在线观看| 激情五月婷婷综合| 中国av一区二区三区| 国产欧美一区二区精品性| 国产激情精品久久久第一区二区 | 九九**精品视频免费播放| 麻豆91在线观看| 欧美午夜精品免费| 久久久久久毛片| 日韩电影免费在线看| 日本一区二区三区dvd视频在线| 在线综合+亚洲+欧美中文字幕| 久久久久成人黄色影片| 亚洲午夜精品在线| 粉嫩13p一区二区三区| 欧美日韩国产一级| 日韩网站在线看片你懂的| 麻豆久久一区二区| 经典三级视频一区| 久久福利视频一区二区| 久久久久国产精品免费免费搜索| 国产91精品露脸国语对白| 午夜激情一区二区三区| 亚洲免费在线观看| 中文字幕av在线一区二区三区| 日韩欧美在线影院| 欧美日韩你懂得| 99久久久久久| 成人激情视频网站| 国产成人午夜99999| 国产伦精品一区二区三区免费迷| 日本成人在线电影网| 丝袜诱惑制服诱惑色一区在线观看| 国产亚洲精品久| 国产片一区二区| 久久亚洲综合色| 国产网红主播福利一区二区| 日韩欧美一区在线| 精品久久久久久久久久久久久久久久久| 欧美在线观看视频一区二区三区| 欧美视频一区二区| 欧美精品v国产精品v日韩精品| 欧美日韩一区二区三区高清| 91免费精品国自产拍在线不卡| 9人人澡人人爽人人精品| 91麻豆高清视频| jizzjizzjizz欧美| 国产在线乱码一区二区三区|