mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-30 08:21:25 +00:00
Header reorganizsateion - Please refer to ChangeLog
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17407 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
9cc6c39319
commit
ac30183cd6
238 changed files with 694 additions and 544 deletions
132
Headers/Foundation/NSThread.h
Normal file
132
Headers/Foundation/NSThread.h
Normal file
|
@ -0,0 +1,132 @@
|
|||
/* Control of executable units within a shared virtual memory space
|
||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||
|
||||
Original Author: Scott Christley <scottc@net-community.com>
|
||||
Rewritten by: Andrew McCallum <mccallum@gnu.ai.mit.edu>
|
||||
Created: 1996
|
||||
|
||||
This file is part of the GNUstep Objective-C Library.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
|
||||
*/
|
||||
|
||||
#ifndef __NSThread_h_GNUSTEP_BASE_INCLUDE
|
||||
#define __NSThread_h_GNUSTEP_BASE_INCLUDE
|
||||
|
||||
#ifdef NeXT_RUNTIME
|
||||
#include <GNUstepBase/thr-mach.h>
|
||||
#endif
|
||||
#include <Foundation/NSDictionary.h>
|
||||
#include <Foundation/NSDate.h>
|
||||
#include <Foundation/NSException.h>
|
||||
#include <Foundation/NSAutoreleasePool.h> // for struct autorelease_thread_vars
|
||||
|
||||
@interface NSThread : NSObject
|
||||
{
|
||||
id _target;
|
||||
id _arg;
|
||||
SEL _selector;
|
||||
BOOL _active;
|
||||
@public
|
||||
NSHandler *_exception_handler;
|
||||
NSMutableDictionary *_thread_dictionary;
|
||||
struct autorelease_thread_vars _autorelease_vars;
|
||||
id _gcontext;
|
||||
}
|
||||
|
||||
+ (NSThread*) currentThread;
|
||||
+ (void) detachNewThreadSelector: (SEL)aSelector
|
||||
toTarget: (id)aTarget
|
||||
withObject: (id)anArgument;
|
||||
+ (void) exit;
|
||||
+ (BOOL) isMultiThreaded;
|
||||
+ (void) setThreadPriority: (double)pri;
|
||||
+ (void) sleepUntilDate: (NSDate*)date;
|
||||
+ (double) threadPriority;
|
||||
|
||||
- (NSMutableDictionary*) threadDictionary;
|
||||
|
||||
@end
|
||||
|
||||
#ifndef STRICT_OPENSTEP
|
||||
@interface NSObject(NSMainThreadPerformAdditions)
|
||||
- (void) performSelectorOnMainThread: (SEL)aSelector
|
||||
withObject: (id)anObject
|
||||
waitUntilDone: (BOOL)aFlag
|
||||
modes: (NSArray*)anArray;
|
||||
- (void) performSelectorOnMainThread: (SEL)aSelector
|
||||
withObject: (id)anObject
|
||||
waitUntilDone: (BOOL)aFlag;
|
||||
@end
|
||||
#endif
|
||||
|
||||
#ifndef NO_GNUSTEP
|
||||
/*
|
||||
* Don't use the following functions unless you really know what you are
|
||||
* doing !
|
||||
* The following functions are low-levelish and special.
|
||||
* They are meant to make it possible to run GNUstep code in threads
|
||||
* created in completely different environment, eg inside a JVM.
|
||||
*
|
||||
* If you use them, make sure you initialize the NSThread class inside
|
||||
* (what you consider to be your) main thread, before registering any
|
||||
* other thread. To initialize NSThread, simply call GSCurrentThread
|
||||
* (). The main thread will not need to be registered.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Register an external thread (created using your OS thread interface
|
||||
* directly) to GNUstep. This means that it creates a NSThread object
|
||||
* corresponding to the current thread, and sets things up so that you
|
||||
* can run GNUstep code inside the thread. If the thread was not
|
||||
* known to GNUstep, this function registers it, and returns YES. If
|
||||
* the thread was already known to GNUstep, this function does nothing
|
||||
* and returns NO. */
|
||||
GS_EXPORT BOOL GSRegisterCurrentThread (void);
|
||||
/*
|
||||
* Unregister the current thread from GNUstep. You must only
|
||||
* unregister threads which have been register using
|
||||
* registerCurrentThread (). This method is basically the same as
|
||||
* `+exit', but does not exit the thread - just destroys all objects
|
||||
* associated with the thread. Warning: using any GNUstep code after
|
||||
* this method call is not safe. Posts an NSThreadWillExit
|
||||
* notification. */
|
||||
GS_EXPORT void GSUnregisterCurrentThread (void);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Notification Strings.
|
||||
* NSBecomingMultiThreaded and NSThreadExiting are defined for strict
|
||||
* OpenStep compatibility, the actual notification names are the more
|
||||
* modern OPENSTEP/MacOS versions.
|
||||
*/
|
||||
GS_EXPORT NSString *NSWillBecomeMultiThreadedNotification;
|
||||
#define NSBecomingMultiThreaded NSWillBecomeMultiThreadedNotification
|
||||
|
||||
GS_EXPORT NSString *NSThreadWillExitNotification;
|
||||
#define NSThreadExiting NSThreadWillExitNotification
|
||||
|
||||
#ifndef NO_GNUSTEP
|
||||
|
||||
GS_EXPORT NSString *NSThreadDidStartNotification;
|
||||
|
||||
/*
|
||||
* Get current thread and it's dictionary.
|
||||
*/
|
||||
GS_EXPORT NSThread *GSCurrentThread(void);
|
||||
GS_EXPORT NSMutableDictionary *GSCurrentThreadDictionary(void);
|
||||
#endif
|
||||
|
||||
#endif /* __NSThread_h_GNUSTEP_BASE_INCLUDE */
|
Loading…
Add table
Add a link
Reference in a new issue