diff options
author | Benny Prijono <bennylp@teluu.com> | 2006-03-30 16:32:18 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2006-03-30 16:32:18 +0000 |
commit | 974fbe67d6d62efadd129cc81b9072faf3b2f029 (patch) | |
tree | 82a44cd7c10d447766280047e035928166833348 /pjlib/src/pj/ioqueue_common_abs.h | |
parent | 3cf609b42e573adf8e7183070176a450a7b4959e (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.h | 13 |
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 \ |