一次性执行功能

时间:2013-01-25 01:45:21

标签: c linux linux-kernel linux-device-driver

从两个不同文件调用一个函数来加载一些数据,在某些情况下,它从一个文件加载,在某些文件中从其他文件加载。但在极端情况下,它是从两个文件中调用的,应避免使用。

我可以使用全局变量或使用函数来确保数据加载只发生一次。

寻找更优雅的解决方案。

linux是否提供了一些API来实现这一目标?

由于

2 个答案:

答案 0 :(得分:4)

如果你在谈论多个线程,那么你需要一个静态变量周围的某种互斥量来表示该函数是否已经运行。

如果您只有一个线程,那么您不需要互斥锁。

答案 1 :(得分:0)

如果是多线程的,请按照建议in this answer使用静态变量周围的互斥锁,或者使用 pthread_once