Index: src/include/port/win32.h =================================================================== RCS file: /projects/cvsroot/pgsql/src/include/port/win32.h,v retrieving revision 1.45 diff -c -r1.45 win32.h *** src/include/port/win32.h 20 May 2005 14:53:26 -0000 1.45 --- src/include/port/win32.h 4 Jun 2005 11:55:36 -0000 *************** *** 144,149 **** --- 144,164 ---- #define SIGUSR1 30 #define SIGUSR2 31 + /* Number of signaling handles */ + #define N_SIGNALING_HANDLES 3 + + /* Signaling variables name prefix */ + #define SIGNAL_SHMEM_PREFIX "Global\\PostgreSQL.SignalShmem" + #define SIGNAL_MUTEX_PREFIX "Global\\PostgreSQL.SignalMutex" + #define SIGNAL_EVENT_PREFIX "Global\\PostgreSQL.SignalEvent" + + /* Signaling shared memory structure */ + typedef struct Win32SignalShmemStruct{ + HANDLE mutex; + HANDLE event; + int queue; + }Win32SignalShmemStruct; + struct timezone { int tz_minuteswest; /* Minutes west of GMT. */ *************** *** 212,225 **** /* In backend/port/win32/signal.c */ - extern DLLIMPORT HANDLE pgwin32_signal_event; - extern HANDLE pgwin32_initial_signal_pipe; - void pgwin32_signal_initialize(void); ! HANDLE pgwin32_create_signal_listener(pid_t pid); void pgwin32_dispatch_queued_signals(void); void pg_queue_signal(int signum); #ifndef FRONTEND #define pg_usleep(t) pgwin32_backend_usleep(t) void pgwin32_backend_usleep(long microsec); --- 227,242 ---- /* In backend/port/win32/signal.c */ void pgwin32_signal_initialize(void); ! void pgwin32_create_signaling_area(pid_t pid); void pgwin32_dispatch_queued_signals(void); void pg_queue_signal(int signum); + extern DLLIMPORT Win32SignalShmemStruct *MySignalShmem; + extern HANDLE pgwin32_initial_signal_handles[N_SIGNALING_HANDLES]; + + #define pgwin32_signal_event (MySignalShmem->event) + #ifndef FRONTEND #define pg_usleep(t) pgwin32_backend_usleep(t) void pgwin32_backend_usleep(long microsec);