From 974fbe67d6d62efadd129cc81b9072faf3b2f029 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Thu, 30 Mar 2006 16:32:18 +0000 Subject: 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 --- pjlib/src/pj/ioqueue_common_abs.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'pjlib/src/pj/ioqueue_common_abs.h') 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 \ -- cgit v1.2.3