← Commit list

d405ac84ea

Stefan Eissing
Stefan Eissing
2025-12-20
SUCCESS Duration: 198s

Subject

multi-notify: add check macro

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

lib/multi.c+2 -2
@@ -2798,7 +2798,7 @@ static CURLMcode multi_perform(struct Curl_multi *multi,
if(multi_ischanged(multi, TRUE))
process_pending_handles(multi);
- if(!returncode)
+ if(!returncode && CURL_MNTFY_HAS_ENTRIES(multi))
returncode = Curl_mntfy_dispatch_all(multi);
/*
@@ -3195,7 +3195,7 @@ out:
if(multi_ischanged(multi, TRUE))
process_pending_handles(multi);
- if(!mresult)
+ if(!mresult && CURL_MNTFY_HAS_ENTRIES(multi))
mresult = Curl_mntfy_dispatch_all(multi);
if(running_handles) {
lib/multi_ntfy.c+3 -0
@@ -174,6 +174,7 @@ void Curl_mntfy_add(struct Curl_easy *data, unsigned int type)
mntfy_chunk_append(tail, data, (uint32_t)type);
else
multi->ntfy.failure = CURLM_OUT_OF_MEMORY;
+ multi->ntfy.has_entries = TRUE;
}
}
@@ -201,5 +202,7 @@ CURLMcode Curl_mntfy_dispatch_all(struct Curl_multi *multi)
multi->ntfy.failure = CURLM_OK; /* reset, once delivered */
return mresult;
}
+ else
+ multi->ntfy.has_entries = FALSE;
return CURLM_OK;
}
lib/multi_ntfy.h+4 -1
@@ -33,9 +33,10 @@ struct curl_multi_ntfy {
curl_notify_callback ntfy_cb;
void *ntfy_cb_data;
struct uint32_bset enabled;
- CURLMcode failure;
struct mntfy_chunk *head;
struct mntfy_chunk *tail;
+ CURLMcode failure;
+ BIT(has_entries);
};
void Curl_mntfy_init(struct Curl_multi *multi);
@@ -53,6 +54,8 @@ void Curl_mntfy_add(struct Curl_easy *data, unsigned int type);
Curl_mntfy_add((d), (t)); \
} while(0)
+#define CURL_MNTFY_HAS_ENTRIES(m) ((m)->ntfy.has_entries)
+
CURLMcode Curl_mntfy_dispatch_all(struct Curl_multi *multi);
#endif /* HEADER_CURL_MULTI_NTFY_H */