You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by mt...@apache.org on 2005/04/16 16:33:27 UTC
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_mt.h
mturk 2005/04/16 07:33:27
Modified: jk/native/common jk_mt.h
Log:
Check if the command was interrupted by a signal before the lock was
checked or acquired.
Revision Changes Path
1.19 +11 -5 jakarta-tomcat-connectors/jk/native/common/jk_mt.h
Index: jk_mt.h
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_mt.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- jk_mt.h 11 Apr 2005 06:36:02 -0000 1.18
+++ jk_mt.h 16 Apr 2005 14:33:27 -0000 1.19
@@ -100,12 +100,14 @@
#define JK_ENTER_LOCK(x, rc) \
do { \
- rc = flock((x), LOCK_EX) == -1 ? JK_FALSE : JK_TRUE; \
+ while ((rc = flock((x), LOCK_EX) < 0) && (errno == EINTR)); \
+ rc = rc == 0 ? JK_TRUE : JK_FALSE; \
} while (0)
#define JK_LEAVE_LOCK(x, rc) \
do { \
- rc = flock((x), LOCK_UN) == -1 ? JK_FALSE : JK_TRUE; \
+ while ((rc = flock((x), LOCK_UN) < 0) && (errno == EINTR)); \
+ rc = rc == 0 ? JK_TRUE : JK_FALSE; \
} while (0)
#else
@@ -117,7 +119,9 @@
_fl.l_whence = SEEK_SET; \
_fl.l_start = 0; \
_fl.l_len = 1L; \
- rc = fcntl((x), F_SETLKW, &_fl) == -1 ? JK_FALSE : JK_TRUE; \
+ _fl.l_pid = 0; \
+ while ((rc = fcntl((x), F_SETLKW, &_fl) < 0) && (errno == EINTR)); \
+ rc = rc == 0 ? JK_TRUE : JK_FALSE; \
} while (0)
#define JK_LEAVE_LOCK(x, rc) \
@@ -127,7 +131,9 @@
_fl.l_whence = SEEK_SET; \
_fl.l_start = 0; \
_fl.l_len = 1L; \
- rc = fcntl((x), F_SETLK, &_fl) == -1 ? JK_FALSE : JK_TRUE; \
+ _fl.l_pid = 0; \
+ while ((rc = fcntl((x), F_SETLKW, &_fl) < 0) && (errno == EINTR)); \
+ rc = rc == 0 ? JK_TRUE : JK_FALSE; \
} while (0)
#endif /* HAVE_FLOCK */
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org