From 7b2dc802c15e7bcb08d7cc778d5bf0f94e3f98a2 Mon Sep 17 00:00:00 2001 From: Richard Frith-MacDonald Date: Mon, 18 Feb 2008 16:20:11 +0000 Subject: [PATCH] Build in mechanism to break stale locks. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@26089 72102866-910b-0410-8b05-ffd578937521 --- Source/NSMessagePortNameServer.m | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/Source/NSMessagePortNameServer.m b/Source/NSMessagePortNameServer.m index daeb57423..f18fe2ba1 100644 --- a/Source/NSMessagePortNameServer.m +++ b/Source/NSMessagePortNameServer.m @@ -158,8 +158,24 @@ static void clean_up_names(void) } else { - NSLog(@"Failed to lock names for NSMessagePortNameServer"); - return nil; + if ([[dl lockDate] timeIntervalSinceNow] < -15.0) + { + NS_DURING + { + [dl breakLock]; + } + NS_HANDLER + { + NSLog(@"Failed to break lock on names for " + @"NSMessagePortNameServer: %@", localException); + } + NS_ENDHANDLER + } + else + { + NSLog(@"Failed to lock names for NSMessagePortNameServer"); + return nil; + } } } }