mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-25 09:41:15 +00:00
Fix for crash/hang in port invalidation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@11399 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
479b03402c
commit
04a61e7512
2 changed files with 4 additions and 0 deletions
|
@ -8,6 +8,8 @@
|
||||||
has now implemented an equivalent for the GNUstep method.
|
has now implemented an equivalent for the GNUstep method.
|
||||||
* Source/NSPortNameServer.m: When removing a port, remove from
|
* Source/NSPortNameServer.m: When removing a port, remove from
|
||||||
internal name tables even if gdomap reports no name to unregister.
|
internal name tables even if gdomap reports no name to unregister.
|
||||||
|
In ([-removePort:]) retain set of names for duration of operation -
|
||||||
|
fix suggested by Gerrit Van Dyk
|
||||||
|
|
||||||
2001-11-12 Richard Frith-Macdonald <rfm@gnu.org>
|
2001-11-12 Richard Frith-Macdonald <rfm@gnu.org>
|
||||||
|
|
||||||
|
|
|
@ -1089,6 +1089,7 @@ typedef enum {
|
||||||
NSMutableSet *known = (NSMutableSet*)NSMapGet(_portMap, port);
|
NSMutableSet *known = (NSMutableSet*)NSMapGet(_portMap, port);
|
||||||
NSString *name;
|
NSString *name;
|
||||||
|
|
||||||
|
RETAIN(known);
|
||||||
while ((name = [known anyObject]) != nil)
|
while ((name = [known anyObject]) != nil)
|
||||||
{
|
{
|
||||||
if ([self removePortForName: name] == NO)
|
if ([self removePortForName: name] == NO)
|
||||||
|
@ -1096,6 +1097,7 @@ typedef enum {
|
||||||
ok = NO;
|
ok = NO;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
RELEASE(known);
|
||||||
}
|
}
|
||||||
NS_HANDLER
|
NS_HANDLER
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue