Thu Sep 27 11:02:54 PDT 2007
- Previous message: [Slony1-commit] slony1-engine/src/slon remote_worker.c
- Next message: [Slony1-commit] slony1-engine/src/slony_logshipper ipcutil.c slony_logshipper.h
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Update of /home/cvsd/slony1/slony1-engine/src/slony_logshipper In directory main.slony.info:/tmp/cvs-serv16953 Modified Files: ipcutil.c slony_logshipper.h Log Message: Let the logshipper wait on -t and -T until the running daemon has destroyed the semaphore set. Jan Index: ipcutil.c =================================================================== RCS file: /home/cvsd/slony1/slony1-engine/src/slony_logshipper/ipcutil.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ipcutil.c 9 Sep 2007 02:37:05 -0000 1.2 --- ipcutil.c 27 Sep 2007 18:02:52 -0000 1.3 *************** *** 86,90 **** * Create or attach to the semaphore set */ ! semid = semget(semkey, 2, 0700 | IPC_CREAT); if (semid < 0) { --- 86,90 ---- * Create or attach to the semaphore set */ ! semid = semget(semkey, 3, 0700 | IPC_CREAT); if (semid < 0) { *************** *** 487,491 **** ipc_send_term(char *archive_dir, bool immediate) { ! return ipc_send_code(archive_dir, (immediate) ? 3 : 2); } --- 487,497 ---- ipc_send_term(char *archive_dir, bool immediate) { ! int rc; ! ! rc = ipc_send_code(archive_dir, (immediate) ? 3 : 2); ! if (rc != 0) ! return rc; ! ! return ipc_wait_for_destroy(); } *************** *** 603,606 **** --- 609,635 ---- /* + * ipc_wait_for_destroy() + * + * Wait until the semaphore set is destroyed. + */ + int + ipc_wait_for_destroy(void) + { + struct sembuf sops[1] = {{2, -1, 0}}; + + if (semop(semid, sops, 1) < 0) + { + if (errno != EIDRM && errno != EINVAL) + { + fprintf(stderr, "semop() failed in ipc_wait_for_destroy(): %s\n", + strerror(errno)); + return -1; + } + } + return 0; + } + + + /* * ipc_cleanup() - * Index: slony_logshipper.h =================================================================== RCS file: /home/cvsd/slony1/slony1-engine/src/slony_logshipper/slony_logshipper.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** slony_logshipper.h 17 Sep 2007 22:07:47 -0000 1.3 --- slony_logshipper.h 27 Sep 2007 18:02:52 -0000 1.4 *************** *** 220,223 **** --- 220,224 ---- int ipc_lock(void); int ipc_unlock(void); + int ipc_wait_for_destroy(void); int ipc_cleanup(char *archive_dir); void ipc_set_shutdown_smart(void);
- Previous message: [Slony1-commit] slony1-engine/src/slon remote_worker.c
- Next message: [Slony1-commit] slony1-engine/src/slony_logshipper ipcutil.c slony_logshipper.h
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-commit mailing list