Describe the bug
After saving the state to the clipboard, F3D takes 1s to quit instead of being instantaneous.
To Reproduce
Steps to reproduce the behavior:
- f3d path/to/cow.vtp
- Ctrl + C (save state to clipboard)
- Ctrl + Q
- 1s before the process actually exits
Expected behavior
The process should exit instantaneously.
System Information:
- OS: Ubuntu 24.04.4 LTS
- GPU and GPU driver: NVIDIA GeForce RTX 4060 Laptop GPU (driver 580.159.03)
F3D Information
F3D 3.4.0
F3D - A fast and minimalist 3D viewer
Version: 3.4.0.
Build date: 2026-01-06 08:54:36.
Build system: Linux 64-bits.
Compiler: GNU 13.3.0.
Module ImGui: ON.
Module OpenEXR: OFF.
Module Raytracing: OFF.
Module WebP: OFF.
VTK version: 9.5.2-2348-g661c7f2231 (date: 20251224).
Copyright (C) 2019-2021 Kitware SAS.
Copyright (C) 2021-2025 Michael Migliore, Mathieu Westphal.
Copyright (C) 2025 F3D-APP Foundation.
License BSD-3-Clause.
Additional context
The issue is coming from the clip lib (external/clip):
std::cv_status status = m_cv.wait_for(m_lock, std::chrono::milliseconds(get_x11_wait_timeout())); with get_x11_wait_timeout() defaulting to 1000ms. There is a fast-exit path when m_cv is notified via call_callback(), but for a SAVE_TARGETS conversion it never fires.
Describe the bug
After saving the state to the clipboard, F3D takes 1s to quit instead of being instantaneous.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The process should exit instantaneously.
System Information:
F3D Information
F3D 3.4.0
F3D - A fast and minimalist 3D viewer
Version: 3.4.0.
Build date: 2026-01-06 08:54:36.
Build system: Linux 64-bits.
Compiler: GNU 13.3.0.
Module ImGui: ON.
Module OpenEXR: OFF.
Module Raytracing: OFF.
Module WebP: OFF.
VTK version: 9.5.2-2348-g661c7f2231 (date: 20251224).
Copyright (C) 2019-2021 Kitware SAS.
Copyright (C) 2021-2025 Michael Migliore, Mathieu Westphal.
Copyright (C) 2025 F3D-APP Foundation.
License BSD-3-Clause.
Additional context
The issue is coming from the clip lib (external/clip):
std::cv_status status = m_cv.wait_for(m_lock, std::chrono::milliseconds(get_x11_wait_timeout()));with get_x11_wait_timeout() defaulting to 1000ms. There is a fast-exit path when m_cv is notified via call_callback(), but for a SAVE_TARGETS conversion it never fires.