mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-30 16:30:41 +00:00
Various minor updatesw for MacOS-X compatibility.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@10481 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
23088ba48e
commit
d9cc3cb96e
7 changed files with 103 additions and 18 deletions
|
@ -934,12 +934,13 @@ typedef enum {
|
|||
return YES;
|
||||
}
|
||||
|
||||
- (void) removePortForName: (NSString*)name
|
||||
- (BOOL) removePortForName: (NSString*)name
|
||||
{
|
||||
NSRunLoop *loop = [NSRunLoop currentRunLoop];
|
||||
GSPortCom *com = nil;
|
||||
unsigned len;
|
||||
NSDate *limit = [NSDate dateWithTimeIntervalSinceNow: timeout];
|
||||
BOOL val = NO;
|
||||
|
||||
if (name == nil)
|
||||
{
|
||||
|
@ -990,6 +991,7 @@ typedef enum {
|
|||
if (result == 0)
|
||||
{
|
||||
NSLog(@"NSPortNameServer unable to unregister '%@'", name);
|
||||
val = NO;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1015,6 +1017,7 @@ typedef enum {
|
|||
}
|
||||
}
|
||||
}
|
||||
val = YES;
|
||||
}
|
||||
}
|
||||
tmp = com;
|
||||
|
@ -1032,6 +1035,7 @@ typedef enum {
|
|||
}
|
||||
NS_ENDHANDLER
|
||||
[serverLock unlock];
|
||||
return val;
|
||||
}
|
||||
@end
|
||||
|
||||
|
@ -1070,8 +1074,9 @@ typedef enum {
|
|||
* Remove all names for a particular port - used when a port is
|
||||
* invalidated.
|
||||
*/
|
||||
- (void) removePort: (NSPort*)port
|
||||
- (BOOL) removePort: (NSPort*)port
|
||||
{
|
||||
BOOL ok = YES;
|
||||
[serverLock lock];
|
||||
NS_DURING
|
||||
{
|
||||
|
@ -1080,7 +1085,10 @@ typedef enum {
|
|||
|
||||
while ((name = [known anyObject]) != nil)
|
||||
{
|
||||
[self removePortForName: name];
|
||||
if ([self removePortForName: name] == NO)
|
||||
{
|
||||
ok = NO;
|
||||
}
|
||||
}
|
||||
}
|
||||
NS_HANDLER
|
||||
|
@ -1090,13 +1098,16 @@ typedef enum {
|
|||
}
|
||||
NS_ENDHANDLER
|
||||
[serverLock unlock];
|
||||
return ok;
|
||||
}
|
||||
|
||||
/*
|
||||
* Remove name for port iff it is registered.
|
||||
*/
|
||||
- (void) removePort: (NSPort*)port forName: (NSString*)name
|
||||
- (BOOL) removePort: (NSPort*)port forName: (NSString*)name
|
||||
{
|
||||
BOOL ok = YES;
|
||||
|
||||
[serverLock lock];
|
||||
NS_DURING
|
||||
{
|
||||
|
@ -1104,7 +1115,10 @@ typedef enum {
|
|||
|
||||
if ([known member: name] != nil)
|
||||
{
|
||||
[self removePortForName: name];
|
||||
if ([self removePortForName: name] == NO)
|
||||
{
|
||||
ok = NO;
|
||||
}
|
||||
}
|
||||
}
|
||||
NS_HANDLER
|
||||
|
@ -1114,6 +1128,7 @@ typedef enum {
|
|||
}
|
||||
NS_ENDHANDLER
|
||||
[serverLock unlock];
|
||||
return ok;
|
||||
}
|
||||
@end
|
||||
|
||||
|
|
|
@ -578,6 +578,18 @@ int main(int argc, char *argv[], char *env[])
|
|||
return _gnu_hostName;
|
||||
}
|
||||
|
||||
- (int) processIdentifier
|
||||
{
|
||||
int pid;
|
||||
|
||||
#if defined(__MINGW__)
|
||||
pid = (int)GetCurrentProcessId();
|
||||
#else
|
||||
pid = (int)getpid();
|
||||
#endif
|
||||
return pid;
|
||||
}
|
||||
|
||||
- (NSString *) processName
|
||||
{
|
||||
return _gnu_processName;
|
||||
|
|
|
@ -439,6 +439,11 @@ pty_slave(const char* name)
|
|||
return YES;
|
||||
}
|
||||
|
||||
- (int) processIdentifier
|
||||
{
|
||||
return _taskId;
|
||||
}
|
||||
|
||||
- (int) terminationStatus
|
||||
{
|
||||
if (_hasLaunched == NO)
|
||||
|
@ -487,6 +492,40 @@ pty_slave(const char* name)
|
|||
[self subclassResponsibility: _cmd];
|
||||
}
|
||||
|
||||
- (BOOL) resume
|
||||
{
|
||||
if (_hasLaunched == NO)
|
||||
{
|
||||
[NSException raise: NSInvalidArgumentException
|
||||
format: @"NSTask - task has not yet launched"];
|
||||
}
|
||||
#ifndef __MINGW__
|
||||
#ifdef HAVE_KILLPG
|
||||
killpg(_taskId, SIGCONT);
|
||||
#else
|
||||
kill(-_taskId, SIGCONT);
|
||||
#endif
|
||||
#endif
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (BOOL) suspend
|
||||
{
|
||||
if (_hasLaunched == NO)
|
||||
{
|
||||
[NSException raise: NSInvalidArgumentException
|
||||
format: @"NSTask - task has not yet launched"];
|
||||
}
|
||||
#ifndef __MINGW__
|
||||
#ifdef HAVE_KILLPG
|
||||
killpg(_taskId, SIGTERM);
|
||||
#else
|
||||
kill(-_taskId, SIGTERM);
|
||||
#endif
|
||||
#endif
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (void) terminate
|
||||
{
|
||||
if (_hasLaunched == NO)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue