1
0
mirror of https://github.com/postgres/postgres.git synced 2025-05-03 22:24:49 +03:00

pgindent new Win32 files.

This commit is contained in:
Bruce Momjian 2003-04-24 18:14:22 +00:00
parent 1a67e4869c
commit a91c5be6a4
2 changed files with 106 additions and 81 deletions
src/backend/port/win32

@ -13,10 +13,13 @@
#include <errno.h>
typedef struct {
typedef struct
{
int m_numSems;
off_t m_semaphoreHandles; // offset from beginning of header
off_t m_semaphoreCounts; // offset from beginning of header
off_t m_semaphoreHandles;
//offset from beginning of header
off_t m_semaphoreCounts;
//offset from beginning of header
} win32_sem_set_hdr;
/* Control of a semaphore pool. The pool is an area in which we stored all
@ -38,9 +41,11 @@ semctl(int semId, int semNum, int flag, union semun semun)
{
int i;
struct sembuf sops;
sops.sem_flg = IPC_NOWAIT;
for (i = 0; i < the_set->m_numSems; ++i) {
for (i = 0; i < the_set->m_numSems; ++i)
{
if (semun.array[i] == sem_counts[i])
continue; /* Nothing to do */
@ -61,8 +66,10 @@ semctl(int semId, int semNum, int flag, union semun semun)
/* Fix the count of one semaphore to semun.val */
else if (flag == SETVAL)
{
if (semun.val != sem_counts[semNum]) {
if (semun.val != sem_counts[semNum])
{
struct sembuf sops;
sops.sem_flg = IPC_NOWAIT;
sops.sem_num = semNum;
@ -94,15 +101,11 @@ semctl(int semId, int semNum, int flag, union semun semun)
/* Get the current semaphore count */
else if (flag == GETNCNT)
{
return the_set->m_numSems;
}
/* Get the current semaphore count of the first semaphore in the pool */
else if (flag == GETVAL)
{
return sem_counts[semNum];
}
/* Other commands not yet supported */
else
@ -135,23 +138,27 @@ semget(int semKey, int semNum, int flags)
sprintf(semname, "PG_SEMSET.%d.", semKey);
num_part = semname + strlen(semname);
strcpy(num_part, _itoa(_getpid() * -1, cur_num, 10)); /* For shared memory, include the pid */
strcpy(num_part, _itoa(_getpid() * -1, cur_num, 10)); /* For shared memory,
* include the pid */
win32_sem_set_hdr *new_set = (win32_sem_set_hdr *) ShmemInitStruct(semname, sem_set_size, &found);
if (found) {
if (found)
{
/* This should *never* happen */
errno = EEXIST;
return -1;
}
new_set->m_numSems = semNum;
new_set->m_semaphoreHandles = sizeof(win32_sem_set_hdr); // array starts after header
new_set->m_semaphoreHandles = sizeof(win32_sem_set_hdr);
//array starts after header
new_set->m_semaphoreCounts = new_set->m_semaphoreHandles + (sizeof(HANDLE) * semNum);
sem_handles = (HANDLE *) ((off_t) new_set + new_set->m_semaphoreHandles);
sem_counts = (int *) ((off_t) new_set + new_set->m_semaphoreCounts);
for (int i=0; i<semNum && ans; ++i) {
for (int i = 0; i < semNum && ans; ++i)
{
strcpy(num_part, _itoa(i, cur_num, 10));
if (flags & IPC_CREAT)
@ -174,11 +181,13 @@ semget(int semKey, int semNum, int flags)
}
}
if (ans) {
if (ans)
return MAKE_OFFSET(new_set);
} else {
// Blow away what we've got right now...
for (int i=0; i<semNum; ++i) {
else
{
/* Blow away what we've got right now... */
for (int i = 0; i < semNum; ++i)
{
if (sem_handles[i])
CloseHandle(sem_handles[i]);
else
@ -198,8 +207,12 @@ semop(int semId, struct sembuf * sops, int nsops)
int *sem_counts = (int *) ((off_t) the_set + the_set->m_semaphoreCounts);
HANDLE cur_handle;
if (nsops != 1) {
/* Not supported (we return on 1st success, and don't cancel earlier ops) */
if (nsops != 1)
{
/*
* Not supported (we return on 1st success, and don't cancel
* earlier ops)
*/
errno = E2BIG;
return -1;
}
@ -209,22 +222,26 @@ semop(int semId, struct sembuf * sops, int nsops)
if (sops[0].sem_op == -1)
{
DWORD ret;
if (sops[0].sem_flg & IPC_NOWAIT)
ret = WaitForSingleObject(cur_handle, 0);
else
ret = WaitForSingleObject(cur_handle, INFINITE);
if (ret == WAIT_OBJECT_0) {
if (ret == WAIT_OBJECT_0)
{
/* We got it! */
sem_counts[sops[0].sem_num]--;
return 0;
} else if (ret == WAIT_TIMEOUT)
}
else if (ret == WAIT_TIMEOUT)
/* Couldn't get it */
errno = EAGAIN;
else
errno = EIDRM;
}
else if (sops[0].sem_op > 0) {
else if (sops[0].sem_op > 0)
{
/* Don't want the lock anymore */
sem_counts[sops[0].sem_num]++;
ReleaseSemaphore(cur_handle, sops[0].sem_op, NULL);

@ -30,12 +30,13 @@ shmdt(const void *shmaddr)
void *
shmat(int memId, void *shmaddr, int flag)
{
/* KEW_TODO -- shmat needs to count # attached to shared mem */
/* TODO -- shmat needs to count # attached to shared mem */
void *lpmem = MapViewOfFileEx((HANDLE) memId,
FILE_MAP_WRITE | FILE_MAP_READ,
0, 0, /* (DWORD)pshmdsc->segsize */ s_segsize, shmaddr);
if (lpmem == NULL) {
if (lpmem == NULL)
{
lpmem = (void *) -1;
errno = GetLastError();
}
@ -57,12 +58,15 @@ shmctl(int shmid, int flag, struct shmid_ds * dummy)
{
/* Can only test for if exists */
int hmap = shmget(shmid, 0, 0);
if (hmap < 0) {
if (hmap < 0)
{
/* Shared memory does not exist */
errno = EINVAL;
return -1;
}
else {
else
{
/* Shared memory does exist and must be in use */
shmctl(hmap, IPC_RMID, NULL); /* Release our hold on it */
errno = 0;
@ -85,7 +89,8 @@ shmget(int memKey, int size, int flag)
s_segsize = size;
sprintf(szShareMem, "sharemem.%d", memKey);
if (flag & IPC_CREAT) {
if (flag & IPC_CREAT)
{
hmap = CreateFileMapping((HANDLE) 0xFFFFFFFF, /* Use the swap file */
NULL,
PAGE_READWRITE, /* Memory is Read/Write */
@ -93,18 +98,21 @@ shmget(int memKey, int size, int flag)
(DWORD) s_segsize, /* Size Lower 32 bits */
szShareMem);
}
else {
else
{
hmap = OpenFileMapping(FILE_MAP_ALL_ACCESS,
FALSE,
szShareMem);
if (!hmap) {
if (!hmap)
{
errno = ENOENT;
return -1;
}
}
dwRet = GetLastError();
if (dwRet == ERROR_ALREADY_EXISTS && hmap && (flag & (IPC_CREAT | IPC_EXCL))) {
if (dwRet == ERROR_ALREADY_EXISTS && hmap && (flag & (IPC_CREAT | IPC_EXCL)))
{
/* Caller wanted to create the segment -- error if already exists */
CloseHandle(hmap);
errno = EEXIST;