使用名为mutex的boost interprocess lib是否存在konwn问题,升级版本为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:\文件夹打开&amp;每当boost试图在C:\ drive下的temp文件夹下创建XX_BT_MY_LOCK_XX文件时关闭活动。似乎对于每个useufl XX_BT_MY_LOCK_XX文件访问,大约有25个C:\ Open,Close。
所以它看起来像是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
我只是想知道一个已知的助推问题?