sorry,I don't know issues in github will be redirect to this group.

在 2016年5月18日星期三 UTC+8下午4:21:32,Linwei写道:
> Trying to make a async building system with +jobs in the latest vim, I find 
> sometimes 'exit_cb' is invoked after 'close_cb' but sometimes 'close_cb' is 
> invoked after 'exit_cb':
> 
> 
> That's what I done in my plugin:
> 
> 1. output text to quickfix window when 'callback' / 'out_cb' / 'err_cb' happen
> 
> 2. output "(close)" to quickfix window when 'close_cb' happen, and flush all 
> the text in channel to quickfix.
> 
> 3. output "[Finished in xx seconds]" to quickfix when 'exit_cb' happen and 
> clean my job state.
> 
> 
> Sometimes I get this in quickfix:
> 
> hello.c:1: xxxxx         -> from 'callback'
> hello.c:2: xxxxx         -> from 'callback'
> hello.c:3: xxxxx         -> from 'callback'
> hello.c:4: xxxxx         -> from 'callback'
> (close)                       -> from 'close_cb'
> [Finished in 2 seconds] -> from 'exit_cb'
> 
> 
> 
> but sometimes I get this:
> 
> hello.c:1: xxxxx         -> from 'callback'
> hello.c:2: xxxxx         -> from 'callback'
> hello.c:3: xxxxx         -> from 'callback'
> [Finished in 2 seconds] -> from 'exit_cb'
> hello.c:4: xxxxx         -> from 'callback'
> (close)                       -> from 'close_cb'
> 
> 
> 
> I just can't figure out which one will happened at last ? 'close_cb' or 
> 'exit_cb' ? and which one should I rely to do the clean stuff ?
> 
> 
> If I reset my building state in 'close_cb' (reset variables and unlet job 
> object and output 'finished') when 'exit_cb' comes after 'close_cb' the 
> environment is already destroyed.
> 
> 
> And if I reset my building state in 'exit_cb' when 'close_cb' comes after 
> 'exit_cb' the environment is already destroyed too.
> 
> 
> I have created a similar plugin for atom text editor ( atom-shell-commands ) 
> with javascript by using a 'child_process' module in node.js. The "process 
> exit callback" in always invoked after all pipe callbacks, so I can simply
> 
> delete the child-process object and do the destruction things in "process 
> exit callback" without worry about any other callbacks will come after that.
> 
> 
> Is this possible to guarantee that 'exit_cb' will alway be invoked after all 
> other callbacks (close_cb/out_cb/err_cb etc) ? If so, it will be much easier 
> for me to write my async building plugin for vim.
> 
> 
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly or view it on GitHub

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui