Lines 265-287
Link Here
|
265 |
McastMember m = McastMember.getMember(data); |
265 |
McastMember m = McastMember.getMember(data); |
266 |
if(log.isDebugEnabled()) |
266 |
if(log.isDebugEnabled()) |
267 |
log.debug("Mcast receive ping from member " + m); |
267 |
log.debug("Mcast receive ping from member " + m); |
268 |
if ( membership.memberAlive(m) ) { |
268 |
synchronized (membershipMutex) { |
269 |
if(log.isDebugEnabled()) |
269 |
if ( membership.memberAlive(m) ) { |
270 |
log.debug("Mcast add member " + m); |
270 |
if(log.isDebugEnabled()) |
271 |
service.memberAdded(m); |
271 |
log.debug("Mcast add member " + m); |
|
|
272 |
service.memberAdded(m); |
273 |
} |
272 |
} |
274 |
} |
273 |
} finally { |
275 |
} finally { |
274 |
checkExpire(); |
276 |
checkExpire(); |
275 |
} |
277 |
} |
276 |
} |
278 |
} |
277 |
|
279 |
|
278 |
protected Object expiredMutex = new Object(); |
280 |
protected final Object membershipMutex = new Object(); |
279 |
|
281 |
|
280 |
/** |
282 |
/** |
281 |
* check member expire or alive |
283 |
* check member expire or alive |
282 |
*/ |
284 |
*/ |
283 |
protected void checkExpire() { |
285 |
protected void checkExpire() { |
284 |
synchronized (expiredMutex) { |
286 |
synchronized (membershipMutex) { |
285 |
McastMember[] expired = membership.expire(timeToExpiration); |
287 |
McastMember[] expired = membership.expire(timeToExpiration); |
286 |
for ( int i=0; i<expired.length; i++) { |
288 |
for ( int i=0; i<expired.length; i++) { |
287 |
if(log.isDebugEnabled()) |
289 |
if(log.isDebugEnabled()) |