summaryrefslogtreecommitdiff
path: root/pjlib/src/pj/ioqueue_common_abs.h
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2006-03-30 16:32:18 +0000
committerBenny Prijono <bennylp@teluu.com>2006-03-30 16:32:18 +0000
commit974fbe67d6d62efadd129cc81b9072faf3b2f029 (patch)
tree82a44cd7c10d447766280047e035928166833348 /pjlib/src/pj/ioqueue_common_abs.h
parent3cf609b42e573adf8e7183070176a450a7b4959e (diff)
Fixed race condition bug in ioqueue unregistration for select and Win32 IOCP backend
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@365 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjlib/src/pj/ioqueue_common_abs.h')
-rw-r--r--pjlib/src/pj/ioqueue_common_abs.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/pjlib/src/pj/ioqueue_common_abs.h b/pjlib/src/pj/ioqueue_common_abs.h
index 1ca70aa8..e7d05561 100644
--- a/pjlib/src/pj/ioqueue_common_abs.h
+++ b/pjlib/src/pj/ioqueue_common_abs.h
@@ -87,6 +87,16 @@ union operation_key
#endif
};
+#if PJ_IOQUEUE_HAS_SAFE_UNREG
+# define UNREG_FIELDS \
+ unsigned ref_count; \
+ pj_bool_t closing; \
+ pj_time_val free_time; \
+
+#else
+# define UNREG_FIELDS
+#endif
+
#define DECLARE_COMMON_KEY \
PJ_DECL_LIST_MEMBER(struct pj_ioqueue_key_t); \
pj_ioqueue_t *ioqueue; \
@@ -100,7 +110,8 @@ union operation_key
int connecting; \
struct read_operation read_list; \
struct write_operation write_list; \
- struct accept_operation accept_list;
+ struct accept_operation accept_list; \
+ UNREG_FIELDS
#define DECLARE_COMMON_IOQUEUE \