On Wed, Jan 16, 2019 at 3:27 PM Venedict Tchistopolskii <veny...@gmail.com>
wrote:

> Pressing "STOP" in the CMake GUI interface halts CMake itself but does not
> stop any execute_process that is going on at the time. This makes it hang
> until the process finishes, since no interrupt is sent......
>
> Aggravating when you're using an exterior script (e.g. a .exe or .py) that
> e.g. handles package maintenance. Would hang up for the entire duration of
> ~40 minutes unless you force kill that sub process.
>
> I think force-killing CMake GUI also won't forward the kill to the
> exec_process, orphaning it.....>.<
>
> My reproduction:
> Windows 10
> CMake script via CMakeLists.txt files
> Executing a Python script PyInstalled into a .exe for windows use ->
> Downloads and untars some SDK's and shows progress (plus a bit more) but
> takes 40-70 minutes average.
>
> Canceling CMake won't cancel python script -> 70min hangup or requirement
> to use task manage and force-kill subprocess.
>
> Let me know any suggestions or possible fixes
> --
>
>
I commented on this about a month ago:

> Looks like this would require a code change how the GUI works and the
> internal way execute_process works.  Now execute_process knows how to
> cancel a process due to time out, but it didn't seem to check for anything
> else.  Essentially it looks like execute_process needs to be signaled by
> the button press to cancel the process in addition to checking for
> timeout.  There are other internal interrupt flags that seem to be set when
> the GUI stop button is pressed.  Anyways this is what I noticed in the
> code base.
>

So in the execute_process function it sits in a loop waiting for the
process to finish.  If the timeout occurs it kills the process.
At the same time when the GUI stop button is pressed it sets some sort of
abort flag that is used during command processing to quit processing
commands.
It seems that someone should be able to take this abort flag and use it to
not only stop the command processing loop but to also have the
execute_process timeout loop to kill the process if the abort flag is set.

Best regards,
F
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake-developers

Reply via email to