Commit graph

163 commits

Author SHA1 Message Date
theraven
ba6f3867a8 More GC fixes. Most notably, mark the thread object as not collectable, since it's hidden away in TLS where the GC can't find it.
GC now works well enough for LanguageKit to run.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33123 72102866-910b-0410-8b05-ffd578937521
2011-05-26 13:24:13 +00:00
rfm
3e0fcb2b73 fix leak and weak docs a little
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32767 72102866-910b-0410-8b05-ffd578937521
2011-04-03 19:14:29 +00:00
rfm
8e4f47717b improve thread safety warning
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32604 72102866-910b-0410-8b05-ffd578937521
2011-03-16 12:17:02 +00:00
rfm
e00ee067f5 remove obsolete code
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32467 72102866-910b-0410-8b05-ffd578937521
2011-03-06 05:18:01 +00:00
rfm
95e4ed9e35 Warn about using an unsafe +initialize
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32455 72102866-910b-0410-8b05-ffd578937521
2011-03-05 13:11:47 +00:00
rfm
aa5229a6cb avoid compiler warnings
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32417 72102866-910b-0410-8b05-ffd578937521
2011-02-28 19:49:57 +00:00
rfm
671f5bcce5 fix gc heade rlocation.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32388 72102866-910b-0410-8b05-ffd578937521
2011-02-27 17:53:14 +00:00
rfm
4102b2a1c8 more changes to avoid leak warnings
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32093 72102866-910b-0410-8b05-ffd578937521
2011-02-12 09:00:18 +00:00
rfm
c7bb84decb Attempts to prevent leak warnings from static analyser
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32090 72102866-910b-0410-8b05-ffd578937521
2011-02-12 06:51:42 +00:00
rfm
5ba9e86ee3 Avoid some locking
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32086 72102866-910b-0410-8b05-ffd578937521
2011-02-11 19:08:32 +00:00
rfm
e679d4e99e Revert back to working code!
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32072 72102866-910b-0410-8b05-ffd578937521
2011-02-11 13:53:54 +00:00
theraven
ae709dcd9a Remove a lock that is protecting thread-local storage. Stop leaking NSThread objects that are stored in thread-local storage.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32070 72102866-910b-0410-8b05-ffd578937521
2011-02-11 12:54:59 +00:00
rfm
fbf77be14b minor performance tweak when handling lots of performs on other threads.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32020 72102866-910b-0410-8b05-ffd578937521
2011-02-09 10:10:04 +00:00
rfm
b4d407b26e Cleanups plus minor OSX compatibility tweak
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31781 72102866-910b-0410-8b05-ffd578937521
2010-12-27 07:03:50 +00:00
nicola
b84001b073 Updated code to compile with GCC 4.6 and the new GNU Objective-C runtime
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31765 72102866-910b-0410-8b05-ffd578937521
2010-12-23 02:23:05 +00:00
nicola
cae06e9e7b Removed unused check (and definition of) objc_thread_add
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31761 72102866-910b-0410-8b05-ffd578937521
2010-12-22 23:36:11 +00:00
rfm
9d29a2cc48 locking tweak
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31210 72102866-910b-0410-8b05-ffd578937521
2010-08-30 19:16:30 +00:00
rfm
df44085cad thread fixes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31209 72102866-910b-0410-8b05-ffd578937521
2010-08-30 17:27:11 +00:00
theraven
0d8f26e852 Fix build with libobjc2.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30967 72102866-910b-0410-8b05-ffd578937521
2010-07-15 09:59:01 +00:00
theraven
a220e13b83 Correct conditional macro.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30592 72102866-910b-0410-8b05-ffd578937521
2010-06-07 00:27:21 +00:00
theraven
5ecda2b311 Don't bother trying to register a thread creation callback with libobjc2 - it's never used.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30561 72102866-910b-0410-8b05-ffd578937521
2010-06-03 17:35:45 +00:00
rfm
adc93a3a78 thread unregistering fixup
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30174 72102866-910b-0410-8b05-ffd578937521
2010-04-16 18:18:43 +00:00
rfm
1a5d643771 generalize define from __MINGW32__ to __MINGW__
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30001 72102866-910b-0410-8b05-ffd578937521
2010-03-19 12:10:11 +00:00
rfm
46fb261443 apply fix by Roland Schwingel
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29879 72102866-910b-0410-8b05-ffd578937521
2010-03-08 12:36:37 +00:00
rfm
7ff4d4c9c7 fixups for libobjc2
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29753 72102866-910b-0410-8b05-ffd578937521
2010-02-25 18:49:31 +00:00
rfm
d605c6f7b5 Simplify header inclusion
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29669 72102866-910b-0410-8b05-ffd578937521
2010-02-19 08:12:46 +00:00
rfm
9edbe1a4fc cosmetic tweaks
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29657 72102866-910b-0410-8b05-ffd578937521
2010-02-17 11:47:06 +00:00
rfm
f13d56d8ec merge back reorganisation branch
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29615 72102866-910b-0410-8b05-ffd578937521
2010-02-14 10:48:10 +00:00
rfm
845bfe3c4c don't try to cleanup on main thread exit
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29478 72102866-910b-0410-8b05-ffd578937521
2010-02-04 18:04:13 +00:00
rfm
b20bb71ccc use usleep for small intervals
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29469 72102866-910b-0410-8b05-ffd578937521
2010-02-03 09:45:45 +00:00
rfm
612ed04160 windows tweaks
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29468 72102866-910b-0410-8b05-ffd578937521
2010-02-03 09:31:59 +00:00
rfm
59114c78f1 exit when main thread exits
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29462 72102866-910b-0410-8b05-ffd578937521
2010-02-02 14:25:58 +00:00
rfm
56f4c389a0 thread termination fixups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29461 72102866-910b-0410-8b05-ffd578937521
2010-02-01 21:08:45 +00:00
rfm
6bf3a906e9 cleanups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28787 72102866-910b-0410-8b05-ffd578937521
2009-10-10 08:16:17 +00:00
rfm
b6159c95bc fixup to work with old compilers
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28750 72102866-910b-0410-8b05-ffd578937521
2009-09-27 19:31:31 +00:00
rfm
1ed217861f minor simplification
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28645 72102866-910b-0410-8b05-ffd578937521
2009-09-09 08:21:51 +00:00
rfm
4cc5cae469 thread exit improvements
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28638 72102866-910b-0410-8b05-ffd578937521
2009-09-08 20:32:52 +00:00
rfm
3263c76ab3 Yield if asked to sleep
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28636 72102866-910b-0410-8b05-ffd578937521
2009-09-08 17:56:58 +00:00
theraven
271a54ece9 Moved registration of runtime multithreaded handler to after the creation of the main thread's NSThread object. This fixes a potential issue where the runtime is already in multithreaded mode, calls the handler, and NSException crashes dereferencing the thread object.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28609 72102866-910b-0410-8b05-ffd578937521
2009-09-05 17:28:01 +00:00
theraven
9dfadd809e * Source/NSLock.m
* Headers/Foundation/NSLock.h
	Completely rewritten implementations of NSLock.h classes.  These are now
	faster, more complete, OS X-compatible, and most importantly actually
	work.  The old ones, for example, called functions that were not
	implemented on Windows.  
	* Source/NSThread.m
	Call pthread functions directly in NSThread instead of via the libobjc
	abstraction layer.  Also fixed a few issues, such as GC not being
	initialized properly for NSThread subclasses that override -main (Javaism
	supported by OS X) and tidies up the code in several places, removing
	premature optimizations, especially those that introduce a test for an
	unlikely case at the start of a method and thus slow everything down.

	As a result of this change, GNUstep now depends on an implementation of
	POSIX threads.  This is included as standard on all modern UNIX systems,
	and as an option on less-modern UNIX systems and non-UNIX systems,
	including Windows.  If you are building GNUstep on Windows, please install
	the pthreads-win32 package, available from:

	http://sourceware.org/pthreads-win32/

	PLEASE TEST THIS!  There may be some code that depended on the old
	behaviour.  I have been running the new NSLock implementation on FreeBSD
	for a few weeks without issue; please report to me any problems that you
	have on your platform.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28598 72102866-910b-0410-8b05-ffd578937521
2009-09-02 13:03:13 +00:00
rfm
cc3838db4d Fix race condition
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28298 72102866-910b-0410-8b05-ffd578937521
2009-05-24 04:22:09 +00:00
rfm
30cf8bf35b Updates for 10.5 API changes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@27962 72102866-910b-0410-8b05-ffd578937521
2009-02-23 20:42:32 +00:00
rfm
afb6e09fe8 fix bugs #25545 and #25546
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@27832 72102866-910b-0410-8b05-ffd578937521
2009-02-10 14:35:12 +00:00
rfm
fed6864e9d Attempt to fix thread registration for GC (bug #25541)
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@27829 72102866-910b-0410-8b05-ffd578937521
2009-02-10 12:16:40 +00:00
rfm
0913c7cb95 More garbage collection updates/fixes.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@27590 72102866-910b-0410-8b05-ffd578937521
2009-01-13 15:57:38 +00:00
rfm
d304d9ee34 garbage collection fixups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@27578 72102866-910b-0410-8b05-ffd578937521
2009-01-12 12:48:46 +00:00
rfm
132c0a285d Make this a bit more robust
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@26864 72102866-910b-0410-8b05-ffd578937521
2008-09-23 08:10:59 +00:00
rfm
ad21368ee2 try to make tread performer firing more robust
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@26856 72102866-910b-0410-8b05-ffd578937521
2008-09-18 08:22:53 +00:00
rfm
e0711a3b8d allow developers more time to adapt to LGPLv3
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@26606 72102866-910b-0410-8b05-ffd578937521
2008-06-08 10:38:33 +00:00
rfm
e1eae14cff Close pipes on invalidation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@26341 72102866-910b-0410-8b05-ffd578937521
2008-03-18 05:55:32 +00:00