OSDN Git Service

flock --> fcntl
authorVadim B. Mikheev <vadim4o@yahoo.com>
Thu, 10 Sep 1998 04:07:59 +0000 (04:07 +0000)
committerVadim B. Mikheev <vadim4o@yahoo.com>
Thu, 10 Sep 1998 04:07:59 +0000 (04:07 +0000)
src/backend/libpq/pqcomm.c

index 349765f..cab6289 100644 (file)
@@ -1,4 +1,4 @@
- /*-------------------------------------------------------------------------
+/*-------------------------------------------------------------------------
  *
  * pqcomm.c--
  *       Communication functions between the Frontend and the Backend
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/libpq/pqcomm.c,v 1.53 1998/09/01 04:28:51 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/libpq/pqcomm.c,v 1.54 1998/09/10 04:07:59 vadim Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -562,7 +562,11 @@ StreamServerPort(char *hostName, short portName, int *fdP)
                 */
                if ((lock_fd = open(sock_path, O_RDONLY | O_NONBLOCK, 0666)) >= 0)
                {
-                       if (flock(lock_fd, LOCK_EX | LOCK_NB) == 0)
+                       struct flock    lck;
+                       
+                       lck.l_whence = SEEK_SET; lck.l_start = lck.l_len = 0;
+                       lck.l_type = F_WRLCK;
+                       if (fcntl(lock_fd, F_SETLK, &lck) == 0)
                        {
                                TPRINTF(TRACE_VERBOSE, "flock on %s, deleting", sock_path);
                                unlink(sock_path);
@@ -607,7 +611,11 @@ StreamServerPort(char *hostName, short portName, int *fdP)
                 */
                if ((lock_fd = open(sock_path, O_RDONLY | O_NONBLOCK, 0666)) >= 0)
                {
-                       if (flock(lock_fd, LOCK_EX | LOCK_NB) != 0)
+                       struct flock    lck;
+                       
+                       lck.l_whence = SEEK_SET; lck.l_start = lck.l_len = 0;
+                       lck.l_type = F_WRLCK;
+                       if (fcntl(lock_fd, F_SETLK, &lck) != 0)
                                TPRINTF(TRACE_VERBOSE, "flock error for %s", sock_path);
                }
        }
@@ -790,3 +798,5 @@ pq_putncharlen(char *s, int n)
 }
 
 #endif
+
+