2011-03-05 56 views
0

我寫了試圖收購命名爲「標記」相同的遠程互斥兩個小程序:ACE_Remote_Mutex如何工作?

ACE_Remote_Mutex token("The Token", 1, 1); 
token.acquire(); 
ACE_OS::sleep(5); 
token.release(); 
return 0; 

他們都得到了下面的調試輸出:

 
(3078597488) acquired The Token 
(4243|3078597488) BIG PROBLEMS with get_connection: Connection refused 
error on remote acquire, releasing shadow mutex. 
(3078597488) released The Token, owner is no owner 
(4243|3078597488) BIG PROBLEMS with get_connection: Connection refused 
(3078597488) release failed: Permission denied. 
(3078597488) shadow: release failed 

不ACE_Remote_Mutex只有一些工作像Corba經紀人那樣的「代理人」?我可以修改我的代碼嗎?

+0

方法名稱中的「remote」一詞可能是您的第一個線索。 – Joe 2011-03-05 17:12:10

回答

0

Remote_Mutex使用令牌服務獲取鎖定。令牌服務不是CORBA服務,但它起着類似的作用。下面是一個動態啓動令牌服務的svc.conf條目的示例:

dynamic Token_Service Service_Object * 
      ../lib/netsvcs:_make_ACE_Token_Acceptor() 
      "-p 10202"