Allow cancellation of an empty file operation as a no-op
This commit is contained in:
1 parent
ba44e243a9
commit
59cd456386
2 files changed
+3
-2
No files matched your search
@@ -292,7 +292,7 @@ struct mf_transfer_request;
|
||||
* Нужны gui_bridge_init и опубликованное работающее ядро; UI callbacks всегда через очередь Qt. */
|
||||
int gui_bridge_member_files_request(uint64_t group, uint64_t server, const struct mf_message* message);
|
||||
int gui_bridge_member_files_transfer(const struct mf_transfer_request* request);
|
||||
/* Запросить отмену ненулевого ID у текущего ядра; 0 — принято, -1 — отказ с логом.
|
||||
/* Запросить отмену ID у текущего ядра; id=0 ничего не делает. 0 — принято/no-op, -1 — отказ с логом.
|
||||
* Память команды принадлежит мосту. Итог операции приходит по её RESPONSE/TRANSFER, отдельного ответа cancel нет. */
|
||||
int gui_bridge_member_files_cancel(uint64_t id);
|
||||
void gui_bridge_set_avatar_result_cb(gui_dm_messages_fn cb);
|
||||
|
||||
@@ -829,8 +829,9 @@ int gui_bridge_member_files_transfer(const struct mf_transfer_request* source) {
|
||||
|
||||
/* После исполнения отменяет native handle; при detach до исполнения payload просто освобождается. */
|
||||
int gui_bridge_member_files_cancel(uint64_t id) {
|
||||
if (!id) return 0;
|
||||
std::lock_guard<std::mutex> guard(bridge_mutex);
|
||||
if (!id || !g_inst || !g_ua || !uasync_is_running(g_ua)) {
|
||||
if (!g_inst || !g_ua || !uasync_is_running(g_ua)) {
|
||||
DEBUG_WARN(DEBUG_CATEGORY_MEDIA, "file bridge: cancel rejected id=%llu core_available=%d",
|
||||
(unsigned long long)id, g_inst && g_ua && uasync_is_running(g_ua)); return -1;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user