2017-07-03 36 views
0

一個異步系統調用。如果我做一個系統調用,如:成語爲恢復2008年的Fortran

call execute_command_line (slowcall1, wait=.false., exitstat=i) 
    call execute_command_line (slowcall2, wait=.false., exitstat=j) 
    call execute_command_line (slowcall3, wait=.false., exitstat=k) 
    call execute_command_line (slowcall4, wait=.false., exitstat=l) 

我想在並行調用這些然後檢查他們,因爲他們的進步,他們是否已經完成,最後採取一些行動。但是,輪詢exitstat並不能提供這些信息。檢查我沒有等待的系統調用實際上完成了什麼是正確的習慣用法?

從這裏: https://gcc.gnu.org/onlinedocs/gfortran/EXECUTE_005fCOMMAND_005fLINE.html

它不會出現任何的可選參數:

  • EXITSTAT
  • CMDSTAT
  • CMDMSG

提供這些信息。

是否有推薦的現代Fortran過程,涉及將鎖文件作爲調用的一部分來使用?或者一個不同的異步調用?

回答

1

不,沒有辦法。當你使用它的命令是「火和忘記」。如果你想要更好的控制,使用線程。不是爲了並行,而是爲了協調。