Author: brane Date: Wed Jul 16 21:51:42 2025 New Revision: 1927277 URL: http://svn.apache.org/viewvc?rev=1927277&view=rev Log: Don't ignore errors when creating the context's guard mutex for the acync resolver's result list.
* serf_private.h (serf_context_t::resolve_guard_status): New member. * src/context.c (serf_context_create_ex): Recort the status from creating the mutex in the context. * src/resolve.c (serf_address_resolve_async): Fail immediately if the guard mutex in the context could not be created. Modified: serf/trunk/serf_private.h serf/trunk/src/context.c serf/trunk/src/resolve.c Modified: serf/trunk/serf_private.h URL: http://svn.apache.org/viewvc/serf/trunk/serf_private.h?rev=1927277&r1=1927276&r2=1927277&view=diff ============================================================================== --- serf/trunk/serf_private.h (original) +++ serf/trunk/serf_private.h Wed Jul 16 21:51:42 2025 @@ -501,6 +501,7 @@ struct serf_context_t { /* The results of asynchronous address resolution. */ #if APR_HAS_THREADS apr_thread_mutex_t *resolve_guard; + apr_status_t resolve_guard_status; #endif serf__resolve_result_t *resolve_head; }; Modified: serf/trunk/src/context.c URL: http://svn.apache.org/viewvc/serf/trunk/src/context.c?rev=1927277&r1=1927276&r2=1927277&view=diff ============================================================================== --- serf/trunk/src/context.c (original) +++ serf/trunk/src/context.c Wed Jul 16 21:51:42 2025 @@ -194,10 +194,11 @@ serf_context_t *serf_context_create_ex( /* Initialize async resolver result queue. */ #if APR_HAS_THREADS - /* FIXME: Ignore the status? */ - apr_thread_mutex_create(&ctx->resolve_guard, - APR_THREAD_MUTEX_DEFAULT, - ctx->pool); + ctx->resolve_guard_status = apr_thread_mutex_create( + &ctx->resolve_guard, APR_THREAD_MUTEX_DEFAULT, ctx->pool); + if (ctx->resolve_guard_status != APR_SUCCESS) { + ctx->resolve_guard = NULL; + } #endif ctx->resolve_head = NULL; Modified: serf/trunk/src/resolve.c URL: http://svn.apache.org/viewvc/serf/trunk/src/resolve.c?rev=1927277&r1=1927276&r2=1927277&view=diff ============================================================================== --- serf/trunk/src/resolve.c (original) +++ serf/trunk/src/resolve.c Wed Jul 16 21:51:42 2025 @@ -79,6 +79,12 @@ apr_status_t serf_address_resolve_async( { apr_pool_t *resolve_pool; +#if APR_HAS_THREADS + if (ctx->resolve_guard_status != APR_SUCCESS) { + return ctx->resolve_guard_status; + } +#endif + apr_pool_create(&resolve_pool, ctx->pool); /* See serf_connection_create3(): if there's a proxy configured in the