Browse Source

Add a way to know if an IPC component is initialized or not

Yann Weber 4 years ago
parent
commit
5db32eb990
2 changed files with 7 additions and 5 deletions
  1. 5
    3
      include/ipc.h
  2. 2
    2
      src/ipc.c

+ 5
- 3
include/ipc.h View File

@@ -43,19 +43,21 @@
43 43
 
44 44
 #define PyFCGI_SEM(i) (PyFCGI_conf.sems[i])
45 45
 
46
+#define PyFCGI_SEM_OPEN(i) (PyFCGI_conf.sems[i].sem != NULL)
47
+
46 48
 /**@defgroup IPC_flags IPC component flags
47 49
  * @ingroup IPC
48 50
  * @brief For IPC component selection */
49 51
 /**@brief Worker state semaphore
50 52
  * @ingroup IPC_flags */
51 53
 #define IPC_WSTATE 2
52
-/**@brief Worker state semaphore
54
+/**@brief Request counter semaphore
53 55
  * @ingroup IPC_flags */
54 56
 #define IPC_WREQS 4
55
-/**@brief Worker state semaphore
57
+/**@brief Monitor <-> pool semaphore
56 58
  * @ingroup IPC_flags */
57 59
 #define IPC_SEMST 8
58
-/**@brief Worker state semaphore
60
+/**@brief Monitor <-> pool SHM flag
59 61
  * @ingroup IPC_flags */
60 62
 #define IPC_SHMST 16
61 63
 

+ 2
- 2
src/ipc.c View File

@@ -107,8 +107,6 @@ int pyfcgi_IPC_close()
107 107
 	{
108 108
 		if(flag & semflg[i])
109 109
 		{
110
-			continue;
111
-			PyFCGI_conf.context.ipc_flag ^= semflg[i];
112 110
 			if(sem_close(PyFCGI_SEM(i).sem) < 0)
113 111
 			{
114 112
 				err = errno;
@@ -118,6 +116,7 @@ int pyfcgi_IPC_close()
118 116
 					strerror(err));
119 117
 				PyFCGI_SEM(i).sem = NULL;
120 118
 			}
119
+			PyFCGI_SEM(i).sem = NULL;
121 120
 		}
122 121
 	}
123 122
 	if(flag & IPC_SHMST)
@@ -149,6 +148,7 @@ int pyfcgi_IPC_destroy(pyfcgi_ipc_flag_t flag)
149 148
 					strerror(err));
150 149
 				res = -1;
151 150
 			}
151
+			PyFCGI_SEM(i).sem = NULL;
152 152
 		}
153 153
 	}
154 154
 	if(flag & IPC_SHMST)

Loading…
Cancel
Save