1
我在OpenMP中遇到問題。有兩個功能應該並行執行。在foo()
有一個循環,將被stop
中斷。正如你所看到的,它被分配在另一個OMP部分。OpenMP:並行部分是否有超時?
的代碼是:
char stop;
#pragma omp parallel
{
#pragma omp sections
{
#pragma omp section
{
foo(&stop);
}
#pragma omp section
{
bar();
stop = getch();
}
}
}
和
void foo(char *foo)
{
while(*stop != 'q')
{
// do stuff
}
}
現在,當我執行該代碼會發生什麼:它被卡在第一(foo()
)部分。在給定的循環中更具體 - 現在是一個無限循環,因爲它永遠不會切換到bar
部分,所以不能調整中斷條件。
現在一個簡單的方法就是超時foo()
部分。我搜索了互聯網,但找不到任何可應用的代碼。
有沒有人有想法?
感謝您的任何建議!
爲什麼不向while循環添加定時條件? –
源文件存儲在.dll中 – user3085931
意思是說你有一個不能更改的庫? –