Author: anthm Date: Mon Oct 22 19:29:29 2007 New Revision: 6021 Modified: freeswitch/trunk/src/switch_apr.c Log: handle APR_EINTR response in queue push\trypop Modified: freeswitch/trunk/src/switch_apr.c ============================================================================== --- freeswitch/trunk/src/switch_apr.c (original) +++ freeswitch/trunk/src/switch_apr.c Mon Oct 22 19:29:29 2007 @@ -745,7 +745,13 @@ SWITCH_DECLARE(switch_status_t) switch_queue_push(switch_queue_t * queue, void *data) { - return apr_queue_push(queue, data); + apr_status_t s; + + do { + s = apr_queue_push(queue, data); + } while (s == APR_EINTR); + + return s; } SWITCH_DECLARE(switch_status_t) switch_queue_trypop(switch_queue_t * queue, void **data) @@ -755,7 +761,13 @@ SWITCH_DECLARE(switch_status_t) switch_queue_trypush(switch_queue_t * queue, void *data) { - return apr_queue_trypush(queue, data); + apr_status_t s; + + do { + s = apr_queue_trypush(queue, data); + } while (s == APR_EINTR); + + return s; } SWITCH_DECLARE(int) switch_vasprintf(char **ret, const char *fmt, va_list ap)
participants (1)
-
Freeswitch SVN