0

具有命名互斥锁的 boost 进程间库是否存在已知问题,boost 版本 1.36。

基本上我们这样做:

#define BT_MY_LOCK "XX_BT_MY_LOCK_XX"
#define WAIT_LOCK named_mutex myLock(open_or_create, BT_TICKET_LIB_LOCK);   \
boost::posix_time::ptime expire_time = microsec_clock::universal_time() + boost::posix_time::seconds(2);    \
scoped_lock<named_mutex> lock(ticketLock, expire_time); \
if (!lock.owns()) throw mutex_failure();

然后我们在需要的时候使用这个宏。

但这似乎导致了很多不必要的 C:\ 文件夹打开和关闭活动,每当 boost 尝试在 C:\ 驱动器下的 temp 文件夹下创建 XX_BT_MY_LOCK_XX 文件时。似乎每个 useufl XX_BT_MY_LOCK_XX 文件访问,大约有 25ish C:\ Open , Cl​​ose 。

所以它看起来像promon:

XX_BT_MY_LOCK_XX access 1 
XX_BT_MY_LOCK_XX access 2
C:\ open
C:\ close
C:\ open
C:\ close
...
repeat 25 times 
...
XX_BT_MY_LOCK_XX access 1 
XX_BT_MY_LOCK_XX access 2
C:\ open
C:\ close
C:\ open
C:\ close
...
repeat 25 times 

我只是想知道这是一个已知的提升问题吗?

4

0 回答 0