Dominique Pelle wrote:
> Vim properly terminates cscope after patches 7.1.{279,281} hence
> cleaning up cscope temporary files.
>
> However, I just noticed that the GUI version of Vim (vim -g)
> still does *not* properly clean up cscope temporary files.
> I'm using Vim-7.1.285 (GUI GTK2) on Linux x86.
>
> Steps to reproduce bug:
>
> 1/ run vim GUI in background with: "vim -g"
>
> 2/ add a cscope datbase with: ":cs add cscope.out"
>
> 3/ exit vim with ":q!"
>
> 4/ observe that temporary files /tmp/cscope.* are left
>
> Bug happens with "vim -g" but does not happen with "vim -f -g".
>
> After debugging, I found that "vim -g" fails to to properly
> shutdown cscope because call to waitpid() in cs_release_csp()
> returns error with errno=10 (No child processes). So vim sends
> immediately SIGKILL to cscope before cscope had a chance to
> terminate. It happens because the GUI version of vim 'vim -g'
> runs in a forked process, so cscope process is no longer a
> child process of vim GUI but a sibling. So waitpid fails
> (waitpid can only wait for children processes to exit).
>
> I did not notice the bug earlier because I rarely run the
> GUI version of vim.
>
> I attach a patch which fixes it by polling until cscope exits
> itself as a result of sending the "q" command.
>
> Perhaps there is a more elegant way of fixing it. For example,
> if cscope was spawned after forking vim, then waitpid() in
> cs_release_csp() would succeed without having to resort to
> such polling. But it might be a bigger change.
Looks like a good fix. Thanks. I'll include it.
--
hundred-and-one symptoms of being an internet addict:
165. You have a web page burned into your glasses
/// Bram Moolenaar -- [EMAIL PROTECTED] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---