ObjFW  History of src/OFThread.m of 1d6a89a77251efc5

History of the file that is called src/OFThread.m at check-in 1d6a89a77251efc5

2024-04-03
02:16
Change license to LGPLv3 only file: [c590c3dc16] check-in: [7413a728a7] user: js, branch: trunk, size: 11326 [annotate] [blame] [check-ins using] [diff]
2024-04-01
15:59
Remove #define __NO_EXT_QNX

It doesn't seem to be needed anymore. file: [ce6ddb874b] check-in: [cf0effe834] user: js, branch: trunk, size: 11118 [annotate] [blame] [check-ins using] [diff]

2024-01-02
17:17
Update copyright file: [2a7fa371d3] check-in: [26ddd2e4e4] user: js, branch: trunk, size: 11139 [annotate] [blame] [check-ins using] [diff]
2023-04-10
15:08
Work around newer amiga-gcc defining Class file: [4fb74cf061] check-in: [abbed5c008] user: js, branch: trunk, size: 11139 [annotate] [blame] [check-ins using] [diff]
2023-01-06
09:04
Update copyright file: [7471d46290] check-in: [8939cbdb52] user: js, branch: trunk, size: 11095 [annotate] [blame] [check-ins using] [diff]
2022-10-23
16:21
Rename a few exceptions for consistency file: [3012eaab1d] check-in: [2872ce314d] user: js, branch: trunk, size: 11095 [annotate] [blame] [check-ins using] [diff]
2022-08-29
20:15
OFThread: Rename threadBlock to block file: [51c302d474] check-in: [0cca95da46] user: js, branch: trunk, size: 11095 [annotate] [blame] [check-ins using] [diff]
2022-02-12
07:46
Update copyright file: [9e6c736b19] check-in: [1a86b8175b] user: js, branch: trunk, size: 11173 [annotate] [blame] [check-ins using] [diff]
2022-01-29
19:24
Make ObjFW compile for MiNT file: [b3fdf815a6] check-in: [8d027eadf3] user: js, branch: trunk, size: 11173 [annotate] [blame] [check-ins using] [diff]
2021-04-18
22:56
Rename all symbols marked extern file: [b51d41216b] check-in: [e73c65a849] user: js, branch: new-naming-convention, size: 11076 [annotate] [blame] [check-ins using] [diff]
20:51
Rename everything in several smaller files file: [74f3661383] check-in: [35de667566] user: js, branch: new-naming-convention, size: 11080 [annotate] [blame] [check-ins using] [diff]
15:55
Rename all functions in macros.h file: [160a8f8f78] check-in: [7392685ffc] user: js, branch: new-naming-convention, size: 11075 [annotate] [blame] [check-ins using] [diff]
2021-04-17
20:47
Rename atomic operations file: [48147e27cd] check-in: [dfaf287249] user: js, branch: new-naming-convention, size: 11076 [annotate] [blame] [check-ins using] [diff]
16:03
of_thread_t -> OFPlainThread file: [135a1ec8ae] check-in: [65510fa56b] user: js, branch: new-naming-convention, size: 11061 [annotate] [blame] [check-ins using] [diff]
15:45
of_tlskey_t -> OFTLSKey file: [d21886a035] check-in: [cc3a4a7b43] user: js, branch: new-naming-convention, size: 11022 [annotate] [blame] [check-ins using] [diff]
03:21
Rename all blocks file: [edb1078c84] check-in: [c4e0e56fa3] user: js, branch: new-naming-convention, size: 11041 [annotate] [blame] [check-ins using] [diff]
00:51
of_time_interval_t -> OFTimeInterval file: [304aef013f] check-in: [8c0d76f782] user: js, branch: new-naming-convention, size: 11049 [annotate] [blame] [check-ins using] [diff]
2021-01-02
22:04
Update copyright file: [9da78353a7] check-in: [374e1a1bfa] user: js, branch: trunk, size: 11053 [annotate] [blame] [check-ins using] [diff]
2020-12-23
13:41
Do not use nanosleep() on AmigaOS / MorphOS

This is yet another function that would need to be passed from the
linklib to the .library. file: [05e44b8885] check-in: [d6050881b4] user: js, branch: trunk, size: 11142 [annotate] [blame] [check-ins using] [diff]

2020-12-20
21:26
Return error instead of using errno for threading

errno is problematic for Amiga libraries and is also not thread-safe on
some systems, even though it should. file: [7d209d5958] check-in: [5b37fbeb82] user: js, branch: trunk, size: 10869 [annotate] [blame] [check-ins using] [diff]

2020-12-06
17:49
Use a single global socket base on MorphOS

MorphOS allows sharing a single socket base between tasks, so having a
per-task socket base is unnecessary. file: [fe4bfba4ee] check-in: [b45a563f2b] user: js, branch: trunk, size: 10804 [annotate] [blame] [check-ins using] [diff]

2020-09-27
03:08
Work around bugs in Apple GCC 4.0.1

Still miscompiles things. file: [690c42ccaa] check-in: [9e9ce6aa1c] user: js, branch: trunk, size: 10780 [annotate] [blame] [check-ins using] [diff]

00:57
Work around bugs in Apple GCC 4.2.1 file: [64242ae003] check-in: [cbc09c6e26] user: js, branch: trunk, size: 10778 [annotate] [blame] [check-ins using] [diff]
2020-01-24
03:03
runtime: Correctly handle AR pool push during pop

Getting a pointer and increasing it until we reach the top pointer does
not work: Releasing an object can temporarily create new autorelease
pools, which can trigger resizing of "objects" using realloc, which can
move it to a different address, which will then lead to continuing to
iterate on a now invalid pointer.

This is now solved by using an index into "objects" instead. Since we're
now indexing for the pop, let's use indexes everywhere, as they're more
readable anyway.

While debugging this, I noticed that the last pool is popped quite
frequently, only for a new pool to be pushed immediately again. This
resulted in a free followed by a malloc every time. Instead, keep the
pool, but let OFThread explicitly say when to free everything. file: [5a3f2982c0] check-in: [e7f4f80e23] user: js, branch: trunk, size: 10770 [annotate] [blame] [check-ins using] [diff]

2020-01-02
01:51
Update copyright file: [82882ba976] check-in: [c7f0229795] user: js, branch: trunk, size: 10652 [annotate] [blame] [check-ins using] [diff]
2019-09-29
20:53
Reduce ivar scopes file: [6151851d64] check-in: [e0a330b377] user: js, branch: trunk, size: 10649 [annotate] [blame] [check-ins using] [diff]
15:58
Remove OFAutoreleasePool

OFAutoreleasePools have long been discouraged in favor of the runtime's
autorelease pools. file: [3758706d1f] check-in: [09be825f88] user: js, branch: trunk, size: 10669 [annotate] [blame] [check-ins using] [diff]

2019-09-01
18:25
Disallow +[OFThread terminate] on main thread file: [0dae234b3c] check-in: [35958b2528] user: js, branch: trunk, size: 10786 [annotate] [blame] [check-ins using] [diff]
18:22
Add +[OFThread isMainThread] file: [4ed6327174] check-in: [8a2fa8eff4] user: js, branch: trunk, size: 10709 [annotate] [blame] [check-ins using] [diff]
16:53
Remove remaining uses of lrint()

It was used to convert a time interval into seconds and microseconds or
seconds and nanoseconds and introduced inaccuracies. file: [590ace3cab] check-in: [e702135e17] user: js, branch: trunk, size: 10588 [annotate] [blame] [check-ins using] [diff]

15:29
OFThread: Allow specifying a name before starting

This allows specifying a name before the thread gets started, so that
the name can be decided by whoever starts the thread, rather than just
by the thread itself once it's running.

This is especially useful as some operating systems do not support
changing the name of the thread once it's running. file: [67276b0c18] check-in: [77780c7596] user: js, branch: trunk, size: 10645 [annotate] [blame] [check-ins using] [diff]

12:50
{condition,mutex,thread}.m: Set errno on error file: [fe6d085eae] check-in: [d7fd999fee] user: js, branch: trunk, size: 10585 [annotate] [blame] [check-ins using] [diff]
2019-08-11
18:56
Support sockets in multiple threads on AmigaOS file: [d2706d56fe] check-in: [a40f3fc829] user: js, branch: trunk, size: 10421 [annotate] [blame] [check-ins using] [diff]
2019-08-10
02:06
Clean up the AmigaOS 4 library mess file: [ec9da598dc] check-in: [3292a6fdbc] user: js, branch: trunk, size: 9771 [annotate] [blame] [check-ins using] [diff]
2019-08-03
18:13
Add threads for AmigaOS file: [0f6e6aa5d7] check-in: [da383f4f03] user: js, branch: trunk, size: 10529 [annotate] [blame] [check-ins using] [diff]
2019-08-02
12:23
OFThread: Set main thread to running file: [83f93c8053] check-in: [a2ab241bc7] user: js, branch: trunk, size: 10512 [annotate] [blame] [check-ins using] [diff]
2019-08-01
20:14
Split threading.[hm] into multiple files

This allows the runtime to only link against the parts it needs, without
pulling in unnecessary parts like thread spawning, TLS and conditions. file: [6c09ccf959] check-in: [5358e9ea6a] user: js, branch: trunk, size: 10469 [annotate] [blame] [check-ins using] [diff]

2019-07-28
12:32
OFThread: Don't require of_thread_exit()

Some systems do not provide the functionality. file: [0906d8e684] check-in: [b5430ac44f] user: js, branch: trunk, size: 10472 [annotate] [blame] [check-ins using] [diff]

2019-04-21
09:58
Fix compilation on AmigaOS 4 with 53.30 SDK file: [67db96fe50] check-in: [50a6ffd4b1] user: js, branch: trunk, size: 10569 [annotate] [blame] [check-ins using] [diff]
2019-03-08
00:35
Use dot syntax file: [5653a804be] check-in: [bceb7ed4c9] user: js, branch: trunk, size: 10549 [annotate] [blame] [check-ins using] [diff]
2019-01-03
19:13
Update copyright file: [8c84f260e2] check-in: [0509d7a844] user: js, branch: trunk, size: 10565 [annotate] [blame] [check-ins using] [diff]
2018-08-19
01:13
Don't use nanosleep() on Nintendo 3DS

It exists, but it just crashes. file: [3b2a0f4201] check-in: [06255a6aa8] user: js, branch: trunk, size: 10559 [annotate] [blame] [check-ins using] [diff]

2018-08-17
01:17
AmigaOS 4: Do not use libauto

libauto loads the libraries too late. file: [b00f8ab9a5] check-in: [d71abc5366] user: js, branch: trunk, size: 10559 [annotate] [blame] [check-ins using] [diff]

2018-08-16
22:33
Fix compilation for AmigaOS 4 file: [757dd832c3] check-in: [7413f500db] user: js, branch: trunk, size: 9820 [annotate] [blame] [check-ins using] [diff]
2018-08-11
20:45
Fix --disable-threads --disable-sockets file: [640ed8051c] check-in: [a220bd7393] user: js, branch: trunk, size: 9796 [annotate] [blame] [check-ins using] [diff]
20:25
Add +[OFThread DNSResolver]

This returns the DNS resolver for the current thread. file: [0be3da0cb6] check-in: [2fb0769744] user: js, branch: trunk, size: 9765 [annotate] [blame] [check-ins using] [diff]

2018-07-28
18:45
Rename OFLocalization -> OFLocale file: [cbd29f4328] check-in: [aa0384d1bf] user: js, branch: trunk, size: 9203 [annotate] [blame] [check-ins using] [diff]
2018-05-26
14:49
Remove #define INTUITION_CLASSES_H hack

This has been fixed upstream in amiga-gcc. file: [5bd8a09d91] check-in: [b31bd48f90] user: js, branch: trunk, size: 9221 [annotate] [blame] [check-ins using] [diff]

14:46
Use trunc() instead of floor() in several places

floor() does not have the desired effect here when the number is
negative. file: [a7a9564a2b] check-in: [3c20dd5f95] user: js, branch: trunk, size: 9283 [annotate] [blame] [check-ins using] [diff]

2018-05-13
19:24
platform.h: Rename OF_AMIGAOS3 to OF_AMIGAOS_M68K

The reason for this is that, in theory, this also supports versions
older than 3. file: [9adc83c2c8] check-in: [5831626f68] user: js, branch: trunk, size: 9283 [annotate] [blame] [check-ins using] [diff]

2018-04-23
22:19
Use more native AmigaOS APIs on AmigaOS 3 file: [19b90357c1] check-in: [b16fc262c0] user: js, branch: trunk, size: 9279 [annotate] [blame] [check-ins using] [diff]
2018-04-22
17:48
Make ObjFW compile for AmigaOS 3 file: [6fbe74a9ed] check-in: [0b07c8fcfa] user: js, branch: trunk, size: 9275 [annotate] [blame] [check-ins using] [diff]
16:13
runtime: Define BOOL to be the same as bool

As we define the ABI, we can just replace BOOL with bool everywhere,
including in ObjFW itself. For the Apple platforms where BOOL and bool
are different, this is not a problem as BOOL and bool are passed and
returned the same way in the ABI.

This still defines BOOL to bool for compatibility, except on AmigaOS and
Wii, which both have its own BOOL type. file: [87b40649c1] check-in: [fe2cbe0021] user: js, branch: trunk, size: 9221 [annotate] [blame] [check-ins using] [diff]

2018-01-03
19:49
Update copyright notice file: [760eefafe7] check-in: [7e5c81e186] user: js, branch: trunk, size: 9294 [annotate] [blame] [check-ins using] [diff]
2017-11-04
20:56
+[OFThread threadDictionary]: Handle nil thread file: [a4d40e057a] check-in: [c6e0123999] user: js, branch: 0.90, size: 8810 [annotate] [blame] [check-ins using] [diff]
2017-10-30
00:23
Add class properties where appropriate

This improves Swift compatibility. file: [5ec927c6f3] check-in: [a2e849c681] user: js, branch: trunk, size: 9271 [annotate] [blame] [check-ins using] [diff]

2017-10-17
00:33
Do not use implicit method return types

Instead, explicitly declare them, as OF_ASSUME_NONNULL_{BEGIN,END} does
not apply to implicit return types. This means that after this commit,
all init methods have a nonnull return type, as they should have. file: [2b6b7f737c] check-in: [2f4e0df8be] user: js, branch: trunk, size: 9236 [annotate] [blame] [check-ins using] [diff]

2017-10-07
15:14
OFThread: Fix setting the name on the wrong thread

This time for real. file: [3fc1c7c412] check-in: [1a502ac38c] user: js, branch: 0.90, size: 8775 [annotate] [blame] [check-ins using] [diff]

15:12
OFThread: Fix setting the name on the wrong thread

This time for real. file: [41a9132f9a] check-in: [c211f691e7] user: js, branch: trunk, size: 9190 [annotate] [blame] [check-ins using] [diff]

14:57
OFThread: Support setting the name while running file: [2f9aa72b9d] check-in: [76ee8ab481] user: js, branch: trunk, size: 9152 [annotate] [blame] [check-ins using] [diff]
10:46
OFThread: Fix setting the name on the wrong thread

The name of the thread may only be set from the thread itself. So the
thread should read the property on start and set its name. file: [e0cab8357e] check-in: [1d0042a040] user: js, branch: 0.90, size: 8737 [annotate] [blame] [check-ins using] [diff]

10:46
OFThread: Fix setting the name on the wrong thread

The name of the thread may only be set from the thread itself. So the
thread should read the property on start and set its name. file: [e635f40c39] check-in: [1494d3f6f1] user: js, branch: trunk, size: 8775 [annotate] [blame] [check-ins using] [diff]

2017-09-28
23:02
Enable -Wnullable-to-nonnull-conversion and adjust file: [488341d5ad] check-in: [2de9660312] user: js, branch: trunk, size: 9081 [annotate] [blame] [check-ins using] [diff]
2017-09-26
22:40
Work around Clang analyzer false positives file: [c1e478224c] check-in: [c9efebeff9] user: js, branch: trunk, size: 9068 [annotate] [blame] [check-ins using] [diff]
2017-06-04
18:48
Treat MorphOS + ixemul as a separate platform

This reduces the ifdef hell and makes much more sense, as with ixemul,
no native calls are allowed. file: [3ff1e2b592] check-in: [c9621825fc] user: js, branch: trunk, size: 9030 [annotate] [blame] [check-ins using] [diff]

2017-05-28
23:38
platform.h: Add OF_ANDROID and OF_DJGPP file: [27186ac8aa] check-in: [476483dd19] user: js, branch: trunk, size: 9082 [annotate] [blame] [check-ins using] [diff]
17:56
OFThread: Use Delay() on MorphOS + libnix file: [d1aa6904ee] check-in: [aa6143bdf1] user: js, branch: trunk, size: 9083 [annotate] [blame] [check-ins using] [diff]
2017-05-27
10:33
Add unistd.h wrapper to make things less horrible file: [9edbd0db22] check-in: [d31ec806ef] user: js, branch: trunk, size: 8810 [annotate] [blame] [check-ins using] [diff]
10:08
Make things work with glibc 2.17 and Clang 3.4.2 file: [642d2b4756] check-in: [ec36a82d68] user: js, branch: trunk, size: 8975 [annotate] [blame] [check-ins using] [diff]
2017-05-22
23:31
Make includes of unistd.h and fcntl.h conditional file: [0372a1b765] check-in: [1287e77e04] user: js, branch: trunk, size: 8923 [annotate] [blame] [check-ins using] [diff]
2017-05-21
21:28
Prefix private methods with of_ instead of OF_

This matches Apple's style. file: [b1f565231d] check-in: [6b77a5dd8b] user: js, branch: trunk, size: 8921 [annotate] [blame] [check-ins using] [diff]

2017-05-17
22:07
OFThread: Use unsigned int instead of useconds_t

useconds_t isn't always available and an unsigned int always satisfies
the range we require here. file: [3b9d6bd50a] check-in: [8e84561642] user: js, branch: trunk, size: 8921 [annotate] [blame] [check-ins using] [diff]

2017-05-13
22:38
Reduce retain + autorelease file: [666629e8be] check-in: [504e13cf00] user: js, branch: trunk, size: 8952 [annotate] [blame] [check-ins using] [diff]
2017-05-07
20:10
Small code style change

Casts are now written like types in variable declarations. file: [a839633991] check-in: [4af49a13c3] user: js, branch: trunk, size: 8975 [annotate] [blame] [check-ins using] [diff]

2017-01-09
17:36
Update copyright

Forgot to add 2017, even though I already did quite some changes in
2017. file: [44538b1550] check-in: [44f45c2e35] user: js, branch: trunk, size: 8966 [annotate] [blame] [check-ins using] [diff]

2016-04-18
17:22
OFThread: Fix missing include

This was only a problem with --disable-sockets, as sockets pull in
OFString.h via OFRunLoop.h. file: [f54c089de2] check-in: [ad9813cef0] user: js, branch: 0.8, size: 8743 [annotate] [blame] [check-ins using] [diff]

17:00
OFThread: Fix missing include

This was only a problem with --disable-sockets, as sockets pull in
OFString.h via OFRunLoop.h. file: [b9ed17bd65] check-in: [e630807216] user: js, branch: trunk, size: 8960 [annotate] [blame] [check-ins using] [diff]

2016-02-21
20:41
OFThread: Sleep using svcSleepThread() on 3DS

This makes ObjFW compile for the Nintendo 3DS. file: [d451c32cdd] check-in: [032bfb52ed] user: js, branch: trunk, size: 8939 [annotate] [blame] [check-ins using] [diff]

2016-01-03
00:43
Update copyright

While at it, also update the mail address. file: [9d8e398251] check-in: [cec0f072f8] user: js, branch: 0.8, size: 8722 [annotate] [blame] [check-ins using] [diff]

00:41
Update copyright

While at it, also update the mail address. file: [b26e7541e7] check-in: [2a27cf3000] user: js, branch: trunk, size: 8711 [annotate] [blame] [check-ins using] [diff]

2015-11-29
11:43
Make properties a requirement and clean up code

This increases the required GCC version from 4.0 to 4.6 (exception:
Apple GCC, which already supports this with >= 4.0 starting with OS X
10.5). Since even GCC 4.6 is really old by now, there is no point in
still supporting something even older and making the code ugly because
of that. While some hardware and OS support was dropped from GCC 4.6
compared to GCC 4.0, there is nothing in there that would be an
interesting target with the exception of BeOS maybe - but a port to BeOS
can also be achieved using the Haiku support. The other dropped OSes are
mostly old versions of OSes while newer ones are still being supported
(and those newer versions of those OSes still support the same
hardware). file: [ed37db867b] check-in: [48980f2297] user: js, branch: trunk, size: 8707 [annotate] [blame] [check-ins using] [diff]

2015-10-19
22:15
Add platform.h & make platform defines consistent file: [89cb894f3a] check-in: [1ba08eebc5] user: js, branch: trunk, size: 8752 [annotate] [blame] [check-ins using] [diff]
2015-09-17
21:19
Fix compilation for PSP file: [8a7b628ccd] check-in: [719ec38eb0] user: js, branch: trunk, size: 8718 [annotate] [blame] [check-ins using] [diff]
2015-09-06
15:48
Fix compilation for Wii file: [5fea1c6704] check-in: [d0eab356ce] user: js, branch: trunk, size: 8696 [annotate] [blame] [check-ins using] [diff]
2015-05-16
11:15
+[sleepForTimeInterval:]: Just return on negative file: [785aa7fe26] check-in: [41d9be6b3b] user: js, branch: trunk, size: 8565 [annotate] [blame] [check-ins using] [diff]
2015-01-03
20:57
Update copyright file: [bdd0b31d38] check-in: [cfd374b906] user: js, branch: trunk, size: 8599 [annotate] [blame] [check-ins using] [diff]
2014-08-01
12:27
Change return type for thread main

This changes the return type to void, as the return type of a thread's
main depends on the threading implementation used. For pthreads, it adds
a wrapper function which returns NULL to avoid problems with bogus
return values. For WinAPI threads, the function is just casted, as bogus
return values don't seem to matter there. file: [e9af0aca95] check-in: [52e02c06ca] user: js, branch: trunk, size: 8593 [annotate] [blame] [check-ins using] [diff]

2014-07-19
16:27
OFThread: Configurable priority and stack size file: [b9ff0cb8da] check-in: [c4f724070a] user: js, branch: trunk, size: 8603 [annotate] [blame] [check-ins using] [diff]
16:16
Add of_thread_set_name() file: [8e23861680] check-in: [2c78c6570b] user: js, branch: trunk, size: 7899 [annotate] [blame] [check-ins using] [diff]
09:55
Don't use C11's noreturn

It causes just too much trouble: It breaks with some old versions of
Clang, where noreturn does not work correctly, and OS X headers break if
noreturn is defined, requiring an ugly and fragile workaround. It's just
not worth the trouble it causes, as the same functionality is available
through __attribute__((__noreturn__)). file: [4615b52a3c] check-in: [716b1fc2b3] user: js, branch: trunk, size: 7976 [annotate] [blame] [check-ins using] [diff]

2014-06-21
21:43
Move all macros from OFObject.h to macros.h

This means that OFObject.h imports macros.h now, making it unnecessary
to manually import macros.h in almost every file. And while at it, also
import autorelease.h in OFObject.h, so that this doesn't need to be
manually imported in almost every file as well. file: [fc3b904999] check-in: [13ee56edf3] user: js, branch: trunk, size: 7968 [annotate] [blame] [check-ins using] [diff]

2014-05-29
21:27
Work around __block being used by old glibc file: [57ac3c2fe7] check-in: [d1e559b643] user: js, branch: trunk, size: 8011 [annotate] [blame] [check-ins using] [diff]
2014-05-15
01:50
Don't define _*_SOURCE

Instead, just define _GNU_SOURCE when __GLIBC__ is defined. After all,
that's the only libc that doesn't work properly without any defines. file: [96b5d11fcf] check-in: [17be12b6e5] user: js, branch: trunk, size: 7920 [annotate] [blame] [check-ins using] [diff]

2014-05-05
02:43
Add OF_NO_RETURN and OF_UNREACHABLE file: [75412d8593] check-in: [b885b6fdfa] user: js, branch: trunk, size: 7974 [annotate] [blame] [check-ins using] [diff]
01:08
Improve atomics API file: [68ca15bbc7] check-in: [a92844520a] user: js, branch: trunk, size: 7770 [annotate] [blame] [check-ins using] [diff]
2014-04-27
19:34
Initial Nintendo DS port file: [d65d9ab0c1] check-in: [cd0a632472] user: js, branch: trunk, size: 7770 [annotate] [blame] [check-ins using] [diff]
2014-04-08
18:48
Partly revert 4a8704e

This actually caused more trouble than it fixed. The real reason was
that _POSIX_TIMERS wasn't defined and thus nanosleep() would not be
declared by time.h. libogc however also provides nanosleep(), but an
incompatible one that we don't really want. So after _POSIX_TIMERS has
been defined, it would actually conflict, as both declarations would be
used then. This removes the special handling for Wii and uses the
nanosleep() from time.h, which has a declaration that is compatible with
POSIX. file: [21b3bcf0e5] check-in: [82b11a2992] user: js, branch: trunk, size: 7486 [annotate] [blame] [check-ins using] [diff]

2014-03-05
00:15
OFThread.m: Fix missing define for PSP file: [0049adfd9b] check-in: [a4986b3356] user: js, branch: trunk, size: 7691 [annotate] [blame] [check-ins using] [diff]
00:12
Fix compilation for Wii file: [b62a944b3a] check-in: [54a34ebd9c] user: js, branch: trunk, size: 7669 [annotate] [blame] [check-ins using] [diff]
2014-02-23
21:04
Increase _POSIX_C_SOURCE and _XOPEN_SOURCE

FreeBSD needs this. file: [3d7fca1f63] check-in: [30f95ecdf5] user: js, branch: trunk, size: 7464 [annotate] [blame] [check-ins using] [diff]

18:51
Add missing #define _POSIX_C_SOURCE 199309L

This also removes #include <time.h> from OFHTTPClientTests, as this
would cause <time.h> to be included without _POSIX_C_SOURCE set to
199309L and thus struct timespec would be missing. file: [ccb97c5ea7] check-in: [bfc762c6d8] user: js, branch: trunk, size: 7464 [annotate] [blame] [check-ins using] [diff]

2014-02-18
00:22
Move around a few defines to be more consistent file: [1302d2a050] check-in: [f9d12201f8] user: js, branch: trunk, size: 7485 [annotate] [blame] [check-ins using] [diff]
2014-02-13
23:26
Use -std=c11 instead of -std=gnu11

Not using -std=gnu11 means _GNU_SOURCE does not get defined anymore,
therefore this commit also adds the required feature defines for glibc.

Additionally, this adds of_strdup in macros.h, as strdup is an
extension. file: [621dd2e5a4] check-in: [2f5af58573] user: js, branch: trunk, size: 7487 [annotate] [blame] [check-ins using] [diff]

2014-01-16
23:09
Add of_time_interval_t.

This is used instead for time intervals now instead of doubles. file: [bbc593cb97] check-in: [dc31ce3d34] user: js, branch: trunk, size: 7455 [annotate] [blame] [check-ins using] [diff]

2014-01-04
00:24
Update copyright. file: [4151197f7a] check-in: [3b97fc3cd9] user: js, branch: trunk, size: 7382 [annotate] [blame] [check-ins using] [diff]
2013-12-15
18:11
Fix a few minor bugs found by the Clang Analyzer. file: [ac1a8ee7d6] check-in: [ffe7645e3a] user: js, branch: trunk, size: 7376 [annotate] [blame] [check-ins using] [diff]
2013-12-05
17:48
Make coding style consistent.

A file documenting the coding style will be written soon. This will
hopefully prevent conflicts in the future, such as whether static
functions are written in camelCase or_with_underscores, like was the
case here. file: [8a5ecd213c] check-in: [fa6496efc7] user: js, branch: trunk, size: 7375 [annotate] [blame] [check-ins using] [diff]

2013-12-01
02:08
Port to DOS/DJGPP.

The port was much easier than expected. The only changes that were
required were defining the missing lrint() and useconds_t, the rest was
optional (like using backslashes for paths, even though slashes work
fine). file: [d3db130196] check-in: [a0b63a8df4] user: js, branch: trunk, size: 7383 [annotate] [blame] [check-ins using] [diff]

2013-11-30
19:53
OFThread.m: Move #ifdefs.

The reason is that the symbol nanosleep is available now on Win32, but
is part of the pthreads wrapper, which we don't use. file: [b5e162fd36] check-in: [bd2389b6b8] user: js, branch: trunk, size: 7299 [annotate] [blame] [check-ins using] [diff]

2013-11-23
01:12
Add OF_INVALID_INIT_METHOD. file: [b35e0e98a2] check-in: [35dafd5c57] user: js, branch: trunk, size: 7300 [annotate] [blame] [check-ins using] [diff]
2013-09-15
18:51
OFAutoreleasePool: Free pool cache on thread exit. file: [6544d29ad9] check-in: [29e4d00225] user: js, branch: trunk, size: 7369 [annotate] [blame] [check-ins using] [diff]
2013-08-15
19:00
Move private methods into private headers. file: [a7b179a03a] check-in: [1d7a1cbca0] user: js, branch: trunk, size: 7605 [annotate] [blame] [check-ins using] [diff]
2013-07-28
21:07
Replace OFTLSKey w/ +[OFThread threadDictionary]. file: [c78e4c4d29] check-in: [1eaf875a88] user: js, branch: trunk, size: 7576 [annotate] [blame] [check-ins using] [diff]
2013-06-30
18:30
Rename -[initWithBlock:].

It is now called -[initWithThreadBlock:] in order to prevent method
signature conflicts.

This also fixes a missing release for the thread block. file: [076ba07ad1] check-in: [a3639589d3] user: js, branch: trunk, size: 7768 [annotate] [blame] [check-ins using] [diff]

2013-06-22
12:12
Rework exceptions.

This mostly removes the argument for the class in which the exception
occurred. As backtraces were recently added for all platforms, the
passed class does not give any extra information on where the exception
occurred anymore.

This also removes a few other arguments which were not too helpful. In
the past, the idea was to pass as many arguments as possible so that it
is easier to find the origin of the exception. However, as backtraces
are a much better way to find the origin, those are not useful anymore
and just make the exception more cumbersome to use. The rule is now to
only pass arguments that might help in recovering from the exception or
provide information that is otherwise not easily accessible. file: [6bf58b8f5f] check-in: [3d16a30f41] user: js, branch: trunk, size: 7640 [annotate] [blame] [check-ins using] [diff]

2013-04-26
22:25
Better checks for functions used in OFFile. file: [cdfc8ccff6] check-in: [c01ed004b0] user: js, branch: trunk, size: 7811 [annotate] [blame] [check-ins using] [diff]
21:10
Use nanosleep() if available. file: [64480ed795] check-in: [db70226153] user: js, branch: trunk, size: 7789 [annotate] [blame] [check-ins using] [diff]
20:40
Make sure +[OFThread sleep*] is always available.

This means that even if --disable-threads has been specified, it is
possible to use +[OFThread sleep*] to sleep the current (and only)
thread. file: [426c027f93] check-in: [71d45a29d1] user: js, branch: trunk, size: 7825 [annotate] [blame] [check-ins using] [diff]

2013-04-24
20:49
OFThread: Fix missing underscore. file: [ffbd3cc3a9] check-in: [410526006b] user: js, branch: trunk, size: 7427 [annotate] [blame] [check-ins using] [diff]
2013-04-07
21:21
Fix Win32 #include hell. file: [b45d9d2457] check-in: [ec6b265428] user: js, branch: trunk, size: 7421 [annotate] [blame] [check-ins using] [diff]
2013-03-04
17:20
Replace BOOL with bool.

The only places where BOOL is left are those where they are required by
the ABI. file: [36c4793f97] check-in: [c5ef582958] user: js, branch: trunk, size: 7421 [annotate] [blame] [check-ins using] [diff]

2013-02-12
18:22
Prefix all ivars with an underscore. file: [d1deb64582] check-in: [e40729d406] user: js, branch: trunk, size: 7419 [annotate] [blame] [check-ins using] [diff]
2013-01-15
02:11
OFThread: Fix compilation without atomic ops. file: [750512444c] check-in: [d0eb2ddd31] user: js, branch: trunk, size: 7376 [annotate] [blame] [check-ins using] [diff]
2013-01-09
22:24
Update copyright. file: [4dcc89a58d] check-in: [813c00ccf0] user: js, branch: trunk, size: 7215 [annotate] [blame] [check-ins using] [diff]
2012-12-22
15:37
Add -[doesNotRecognizeSelector:]. file: [ba81cccfd2] check-in: [917ce5754c] user: js, branch: trunk, size: 7209 [annotate] [blame] [check-ins using] [diff]
2012-12-09
12:13
Split OFHTTPRequest into OFHTTP{Client,Request}. file: [bdce062fba] check-in: [2b7a70e246] user: js, branch: trunk, size: 7247 [annotate] [blame] [check-ins using] [diff]
2012-11-10
10:27
Make it possible to give threads a name.

On Haiku, this even renames the Haiku thread so that in a process
manager the thread's name can be seen. If no name has been set, it uses
the class name as name for the Haiku thread. file: [eb2ad7e37f] check-in: [debba8efb6] user: js, branch: trunk, size: 7249 [annotate] [blame] [check-ins using] [diff]

00:14
Remove "object" from OFThread.

Blocks don't allow passing it anymore and without blocks, subclassing is
necessary anyway so that an ivar with the correct type can be added
(instead of id) if required. file: [378318c425] check-in: [0639a351db] user: js, branch: trunk, size: 6766 [annotate] [blame] [check-ins using] [diff]

2012-10-26
11:04
Split OFThread.m into multiple files.

It was time to finally have one file per class. file: [94dbbf6fa0] check-in: [0a55edad35] user: js, branch: trunk, size: 6997 [annotate] [blame] [check-ins using] [diff]

10:16
Add OF_ prefix to a private method missing it. file: [dca7dfad37] check-in: [cbf1901c7f] user: js, branch: trunk, size: 11444 [annotate] [blame] [check-ins using] [diff]
2012-10-09
15:07
Make use of instancetype. file: [bab03511a5] check-in: [fb515e8e24] user: js, branch: trunk, size: 11435 [annotate] [blame] [check-ins using] [diff]
2012-10-02
00:04
Remove [OFThread initWithObject:block:]. file: [c8c14f68e1] check-in: [31ff715036] user: js, branch: trunk, size: 11337 [annotate] [blame] [check-ins using] [diff]
2012-09-21
19:40
Fix a warning about an unused variable. file: [c4706ccc79] check-in: [76852cdf91] user: js, branch: trunk, size: 11656 [annotate] [blame] [check-ins using] [diff]
2012-09-17
09:30
Simplify autoreleasing. file: [5df0e5d983] check-in: [c9bea2982f] user: js, branch: trunk, size: 11676 [annotate] [blame] [check-ins using] [diff]
06:43
Don't create unnecessary run loops. file: [e8774af2ab] check-in: [664e7d85cc] user: js, branch: trunk, size: 11261 [annotate] [blame] [check-ins using] [diff]
06:38
OFThread: Run the run loop if there is no main. file: [8e90710066] check-in: [ade50547f6] user: js, branch: trunk, size: 11260 [annotate] [blame] [check-ins using] [diff]
2012-09-16
22:26
Every OFThread now always has a run loop. file: [80338cd99b] check-in: [4c8f9edda8] user: js, branch: trunk, size: 11320 [annotate] [blame] [check-ins using] [diff]
15:27
Prefix all private methods with OF_. file: [bf828006aa] check-in: [c137da5e5b] user: js, branch: trunk, size: 11232 [annotate] [blame] [check-ins using] [diff]
13:23
Slightly refactor OFRunLoop. file: [28fcccac40] check-in: [0cfbbb367a] user: js, branch: trunk, size: 11220 [annotate] [blame] [check-ins using] [diff]
2012-09-15
12:21
OFThread: Make the block the last argument. file: [dc21f4b704] check-in: [cf8db6867d] user: js, branch: trunk, size: 11394 [annotate] [blame] [check-ins using] [diff]
12:20
OFThread: Implement the OFCopying protocol. file: [eea4c563b1] check-in: [2929f89f3e] user: js, branch: trunk, size: 11386 [annotate] [blame] [check-ins using] [diff]
2012-09-11
16:48
Add OFTimer and OFRunLoop. file: [984a3e9ddd] check-in: [a4494ec477] user: js, branch: trunk, size: 11351 [annotate] [blame] [check-ins using] [diff]
2012-09-09
17:50
Make thread ivars private. file: [e9c62791d8] check-in: [3b1c4cc681] user: js, branch: trunk, size: 10845 [annotate] [blame] [check-ins using] [diff]
17:48
Make the main thread an OFThread. file: [413ce95285] check-in: [ead7b7acd3] user: js, branch: trunk, size: 10824 [annotate] [blame] [check-ins using] [diff]
2012-08-11
08:39
OFThread: Set status before spawning thread.

This way, it's not possible to set the status after the thread has
already set it, though this should only happen if the thread instantly
terminates. file: [b522bb5862] check-in: [e8f12e5de9] user: js, branch: trunk, size: 10494 [annotate] [blame] [check-ins using] [diff]

2012-08-05
17:34
Add OFRecursiveMutex class. file: [03f9920eb4] check-in: [6069030651] user: js, branch: trunk, size: 10494 [annotate] [blame] [check-ins using] [diff]
2012-07-20
14:17
Blocks need to be copied, not retained. file: [d622539c3c] check-in: [ddcfab2b93] user: js, branch: trunk, size: 9624 [annotate] [blame] [check-ins using] [diff]
2012-07-17
01:11
MinGW fixes, mainly workaround for broken strtod. file: [c1f31b8f18] check-in: [91dc019442] user: js, branch: trunk, size: 9626 [annotate] [blame] [check-ins using] [diff]
2012-07-14
20:38
Let of_tlskey_* use void* instead of id. file: [56a82e39ff] check-in: [e379516a39] user: js, branch: trunk, size: 9610 [annotate] [blame] [check-ins using] [diff]
2012-07-12
01:28
Don't access isa directly. file: [01ca359fa0] check-in: [8892ae9fcc] user: js, branch: trunk, size: 9602 [annotate] [blame] [check-ins using] [diff]
2012-03-04
19:42
Remove all code for the GNU runtime. file: [15c3b7304d] check-in: [7f0b0c9811] user: js, branch: runtime, size: 9460 [annotate] [blame] [check-ins using] [diff]
2012-01-05
00:56
Update copyright. file: [ee16dd390b] check-in: [ce70e17b38] user: js, branch: trunk, size: 9816 [annotate] [blame] [check-ins using] [diff]
2011-09-22
23:25
Exceptions are now autoreleased.

This is safe as an "exception loop" can't happen, since if allocating
an exception fails, it throws an OFAllocFailedException which is
preallocated and can always be thrown.

So, the worst case would be that an autorelease of an exception fails,
triggering an OFOutOfMemoryException for which there is no memory,
resulting in an OFAllocFailedException to be thrown. file: [475603ba84] check-in: [e1e7ffa903] user: js, branch: trunk, size: 9810 [annotate] [blame] [check-ins using] [diff]

12:09
Make it impossible to add objects to arbitrary autorelease pools.

This is almost never done, and was made impossible in ARC-compatible
code. file: [b865223801] check-in: [2e484248de] user: js, branch: trunk, size: 9665 [annotate] [blame] [check-ins using] [diff]

02:20
Use rint() instead of nearbyint().

nearbyint() is missing on some systems, even though it is part of C99
and POSIX. file: [a10047f5e7] check-in: [45b499fb11] user: js, branch: trunk, size: 9663 [annotate] [blame] [check-ins using] [diff]

2011-09-21
20:11
More precision for microseconds. file: [9734ed9f86] check-in: [49ec1216cd] user: js, branch: trunk, size: 9673 [annotate] [blame] [check-ins using] [diff]
2011-09-19
11:39
Fix calculation of microseconds. file: [e46284151e] check-in: [6ec0a033bd] user: js, branch: trunk, size: 9643 [annotate] [blame] [check-ins using] [diff]
2011-09-17
20:17
Remove +[OFThread sleepForTimeInterval:microseconds:].

Also fixes the forgotten change to double in +[sleepForTimeInterval:]
and fixes two warnings due to missing casts from double to uint32_t. file: [95ced5e160] check-in: [c19b2b5726] user: js, branch: trunk, size: 9659 [annotate] [blame] [check-ins using] [diff]

15:20
Change OFDate to use and export doubles. file: [8714631aa6] check-in: [4bef853a72] user: js, branch: trunk, size: 9982 [annotate] [blame] [check-ins using] [diff]
2011-09-10
23:54
Make use of the fact that -[retain] and -[release] must not throw. file: [f4c5d36434] check-in: [3687c35784] user: js, branch: trunk, size: 10257 [annotate] [blame] [check-ins using] [diff]
18:36
Remove -[finalize] as ARC will be implemented instead of a GC. file: [28529a39cf] check-in: [972a3ee40d] user: js, branch: trunk, size: 10380 [annotate] [blame] [check-ins using] [diff]
2011-07-17
01:55
Define __NO_EXT_QNX in files using unistd.h or fcntl.h.

Without this, the headers try to declare functions that use __block as
an argument name and thus fail to compile when using -fblocks. file: [e52975424c] check-in: [59e52af26d] user: js, branch: 0.5, size: 9210 [annotate] [blame] [check-ins using] [diff]

01:55
Define __NO_EXT_QNX in files using unistd.h or fcntl.h.

Without this, the headers try to declare functions that use __block as
an argument name and thus fail to compile when using -fblocks. file: [8d6289db16] check-in: [da2701ad14] user: js, branch: trunk, size: 11372 [annotate] [blame] [check-ins using] [diff]

2011-07-10
03:18
Clang with the new GNU runtime does not like blocks checked against nil. file: [b844fc3209] check-in: [bb68bc87dd] user: js, branch: trunk, size: 11350 [annotate] [blame] [check-ins using] [diff]
2011-07-06
22:49
Add +[threadWithBlock:] to OFThread. file: [812930f276] check-in: [d966ede8fe] user: js, branch: trunk, size: 11349 [annotate] [blame] [check-ins using] [diff]
2011-04-25
11:20
Make some GCC versions happy. file: [ca215c7c50] check-in: [8faae2f499] user: js, branch: trunk, size: 10433 [annotate] [blame] [check-ins using] [diff]
2011-04-24
21:50
Add -[finalize] to all classes which would require it once we have GC. file: [8a0ae17cde] check-in: [07b3d0e8de] user: js, branch: trunk, size: 10400 [annotate] [blame] [check-ins using] [diff]
2011-04-22
22:46
More style improvements. file: [2f72c3fe38] check-in: [c9c78d86d3] user: js, branch: trunk, size: 9408 [annotate] [blame] [check-ins using] [diff]
2011-04-21
11:17
Don't call objc_thread_[add,remove} when using ObjFW-RT. file: [926b087d59] check-in: [6ebbffda0d] user: js, branch: trunk, size: 9188 [annotate] [blame] [check-ins using] [diff]
2011-04-12
15:26
Call objc_thread_{add,remove} when using the GNU runtime. file: [56ad3d2bba] check-in: [bc76c7f2b0] user: js, branch: trunk, size: 9086 [annotate] [blame] [check-ins using] [diff]
13:21
Release the old return value when restarting a thread. file: [593c914f01] check-in: [b3fa788a4e] user: js, branch: trunk, size: 8831 [annotate] [blame] [check-ins using] [diff]
13:06
Detach the thread if it was not joined but we want to re-run it. file: [b7fb0c0ce5] check-in: [9825bfe451] user: js, branch: trunk, size: 8805 [annotate] [blame] [check-ins using] [diff]
12:43
Detach threads when we never joined them. file: [ec95778541] check-in: [70b77b9b3a] user: js, branch: trunk, size: 8734 [annotate] [blame] [check-ins using] [diff]
2011-03-25
15:48
Pass the condition for condition exceptions. file: [fd76b79d25] check-in: [b7142607c2] user: js, branch: trunk, size: 8562 [annotate] [blame] [check-ins using] [diff]
15:22
Pass the mutex for mutex exceptions. file: [35bdf0d696] check-in: [343e80e785] user: js, branch: trunk, size: 8437 [annotate] [blame] [check-ins using] [diff]
14:56
Pass the thread for thread exceptions. file: [0dc35a7afe] check-in: [a8113fd82c] user: js, branch: trunk, size: 8360 [annotate] [blame] [check-ins using] [diff]
2011-03-24
19:42
Get rid of OFExceptions.h. file: [88e3bb70b2] check-in: [cda44767f4] user: js, branch: trunk, size: 8267 [annotate] [blame] [check-ins using] [diff]
2011-03-22
00:55
Add -Wshorten-64-to-32. file: [022999c179] check-in: [6d4dfb5bc7] user: js, branch: trunk, size: 7722 [annotate] [blame] [check-ins using] [diff]
2011-03-07
16:00
Add class OFCondition. file: [e6a6c3857f] check-in: [615eb3e46b] user: js, branch: trunk, size: 7228 [annotate] [blame] [check-ins using] [diff]
13:43
Throw an exception when trying to deallocate a locked mutex. file: [e256511cbe] check-in: [f5515b0a1f] user: js, branch: trunk, size: 6386 [annotate] [blame] [check-ins using] [diff]
2011-02-27
02:11
Don't call an OFTLSKey destructor if it is NULL. file: [d347670acc] check-in: [1fe847a754] user: js, branch: trunk, size: 6327 [annotate] [blame] [check-ins using] [diff]
2011-02-09
18:20
Fix #ifdef in +[OFThread yield]. file: [fb1d321236] check-in: [f33274d615] user: js, branch: trunk, size: 6265 [annotate] [blame] [check-ins using] [diff]
2011-01-18
20:58
Add +[thread] to OFThread and allow -[init]. file: [7cfc6bc1be] check-in: [bdfcb94f18] user: js, branch: trunk, size: 6231 [annotate] [blame] [check-ins using] [diff]
2011-01-11
22:45
Rename tlsKey -> TLSKey. Acronyms are always uppercase! file: [87f3aa066d] check-in: [eb374bb382] user: js, branch: trunk, size: 6298 [annotate] [blame] [check-ins using] [diff]
22:43
Fix missing retain + autorelease in TLS-object handling. file: [e6c064086f] check-in: [e9e263d62a] user: js, branch: trunk, size: 6298 [annotate] [blame] [check-ins using] [diff]
22:03
Replace -[sleepForNMilliseconds:] with -[sleepForTimeInterval:]. file: [907c5a1a16] check-in: [219a630ef0] user: js, branch: trunk, size: 6266 [annotate] [blame] [check-ins using] [diff]
21:56
Some systems don't allow usleep for values > 1000000. file: [ea45b83ab4] check-in: [2fb2ff521f] user: js, branch: trunk, size: 6006 [annotate] [blame] [check-ins using] [diff]
19:59
Add +[sleepUntilDate:] to OFDate. file: [8e9159db32] check-in: [3fbc337547] user: js, branch: trunk, size: 5978 [annotate] [blame] [check-ins using] [diff]
2011-01-01
20:19
Change license. file: [5063c8614f] check-in: [da6b3d26cb] user: js, branch: trunk, size: 5519 [annotate] [blame] [check-ins using] [diff]
2010-11-06
11:44
More reliable cleanup on failure in OFMutex and OFTLSKey. file: [8a610bd39b] check-in: [f1d813ef6a] user: js, branch: trunk, size: 5263 [annotate] [blame] [check-ins using] [diff]
2010-10-25
23:03
Clean up a lot of code (mostly init methods) and fix a missing rethrow. file: [6d911d6e5b] check-in: [8a7ca573c4] user: js, branch: trunk, size: 5204 [annotate] [blame] [check-ins using] [diff]
2010-09-05
23:19
Replace OFObject* with id in many places.

We assume now that every object understands retain, release, etc. so
that we can weaken the type from OFObject* to id. This makes it
possible to use different root object classes. file: [4035170a3e] check-in: [e2b06423e0] user: js, branch: trunk, size: 5332 [annotate] [blame] [check-ins using] [diff]

2010-08-25
11:22
Add warning to doc about collections not retaining and autoreleasing. file: [1dfee35b1d] check-in: [91ccd70c55] user: js, branch: trunk, size: 5339 [annotate] [blame] [check-ins using] [diff]
2010-04-23
13:10
Nicer OFList API. file: [ddd40f7181] check-in: [0ea8e1ef09] user: js, branch: trunk, size: 5362 [annotate] [blame] [check-ins using] [diff]
2010-04-17
15:46
Don't return self where not necessary, return void or something useful. file: [e64db843c5] check-in: [062a052b50] user: js, branch: trunk, size: 5330 [annotate] [blame] [check-ins using] [diff]
2010-04-11
17:43
Don't require OFCopying protocol for the thread's object. file: [06743d152c] check-in: [e5240d68e8] user: js, branch: trunk, size: 5353 [annotate] [blame] [check-ins using] [diff]
2010-04-10
23:10
Prevent starting a thread twice. file: [6d271824f0] check-in: [8135be3b0f] user: js, branch: trunk, size: 5391 [annotate] [blame] [check-ins using] [diff]
22:33
There was no real reason to rename -[main] to -[run]. Undo it. file: [935cd4400e] check-in: [663f63e55a] user: js, branch: trunk, size: 5295 [annotate] [blame] [check-ins using] [diff]
22:06
Add +[yield] to OFThread. file: [6abaf9455e] check-in: [1adf3bb9bf] user: js, branch: trunk, size: 5291 [annotate] [blame] [check-ins using] [diff]
22:00
Add +[sleepForNMilliseconds:] to OFThread. file: [e58214a2fc] check-in: [98b8d76bbc] user: js, branch: trunk, size: 5197 [annotate] [blame] [check-ins using] [diff]
21:49
Retain the thread in -[start] first to prevent a race condition. file: [e7e5a215e2] check-in: [82fe4443e2] user: js, branch: trunk, size: 5002 [annotate] [blame] [check-ins using] [diff]
21:43
Minor fix for -[join] in OFThread.

We also want to be able to join a thread that is still running, this
change allows that. file: [12d687f3c9] check-in: [cc17787021] user: js, branch: trunk, size: 4978 [annotate] [blame] [check-ins using] [diff]

21:29
Greatly improve OFThread.
This fixes a lot of issues that happened in the real world.
file: [4081c149ee] check-in: [ea96fd1e24] user: js, branch: trunk, size: 4983 [annotate] [blame] [check-ins using] [diff]
2010-02-19
16:36
Update copyright. file: [6fc1e51add] check-in: [42886185fd] user: js, branch: trunk, size: 3956 [annotate] [blame] [check-ins using] [diff]
2010-02-01
16:29
Retain object passed to OFThread instead of copying. file: [0239ec1e3d] check-in: [7ebc9b62e0] user: js, branch: trunk, size: 3956 [annotate] [blame] [check-ins using] [diff]
2010-01-30
00:50
Add -[tryLock] to OFMutex. file: [acb2745598] check-in: [20e1c0e24b] user: js, branch: trunk, size: 3954 [annotate] [blame] [check-ins using] [diff]
2009-12-02
20:02
Introduce some consistency when to use OFObject* and when to use id. file: [0701aeb932] check-in: [c7ab3a46d1] user: js, branch: trunk, size: 3899 [annotate] [blame] [check-ins using] [diff]
2009-11-15
14:25
Get rid of 3 more FIXMEs. file: [5453c14532] check-in: [51833ec7a7] user: js, branch: trunk, size: 3854 [annotate] [blame] [check-ins using] [diff]
02:10
Improve handling of failed init in OFTLSKey. file: [12445a3521] check-in: [344d7506df] user: js, branch: trunk, size: 3909 [annotate] [blame] [check-ins using] [diff]
2009-11-14
12:17
New solution for TLS key destructors that works on any OS. file: [ae7f24832c] check-in: [12101c192f] user: js, branch: trunk, size: 3672 [annotate] [blame] [check-ins using] [diff]
2009-11-13
18:53
Resolve more FIXMEs. file: [18efd35d69] check-in: [f1637e9310] user: js, branch: trunk, size: 3064 [annotate] [blame] [check-ins using] [diff]
18:42
Add OFMutex(Lock|Unlock)FailedException and fix a few FIXMEs. file: [40c1edc042] check-in: [9a623a35d0] user: js, branch: trunk, size: 3068 [annotate] [blame] [check-ins using] [diff]
2009-11-09
22:45
Rename libobjfw to ObjFW. file: [a317ee9371] check-in: [a3cc34b139] user: js, branch: trunk, size: 3041 [annotate] [blame] [check-ins using] [diff]
2009-10-18
19:32
Only cancel a thread on -[dealloc] if it's still running. file: [6b5ac95014] check-in: [19a1167518] user: js, branch: trunk, size: 3044 [annotate] [blame] [check-ins using] [diff]
2009-10-03
11:51
Add +[tlsKey] to OFTLSKey. file: [3dbf79b6f7] check-in: [fad0ff6539] user: js, branch: trunk, size: 2977 [annotate] [blame] [check-ins using] [diff]
2009-09-21
11:15
Move platform-specific threading stuff to threading.h. file: [72efe40c4e] check-in: [15a67e8ee5] user: js, branch: trunk, size: 2736 [annotate] [blame] [check-ins using] [diff]
2009-07-19
16:01
Prevent calling -[init] if parameters are required. file: [1a195479da] check-in: [42e16978dc] user: js, branch: trunk, size: 4126 [annotate] [blame] [check-ins using] [diff]
14:05
Rename andFoo: to foo: in all methods. file: [0f49dc44da] check-in: [4eae61a78f] user: js, branch: trunk, size: 4033 [annotate] [blame] [check-ins using] [diff]
2009-06-01
04:08
Optimize OFMutex on Win32 and add missing -[dealloc]. file: [a7103d64e5] check-in: [ddcee670e4] user: js, branch: trunk, size: 4033 [annotate] [blame] [check-ins using] [diff]
02:08
Add OFMutex and use it in OFTCPSocket instead of @synchronized. file: [e77c0b551d] check-in: [cca028cedf] user: js, branch: trunk, size: 3888 [annotate] [blame] [check-ins using] [diff]
01:46
Copy the object for an OFThread so it's thread-safe. file: [919a81fa63] check-in: [9b3d408f0d] user: js, branch: trunk, size: 3230 [annotate] [blame] [check-ins using] [diff]
2009-05-29
09:28
Always use [self alloc]. file: [d1dce164e0] check-in: [282aadb9df] user: js, branch: trunk, size: 3204 [annotate] [blame] [check-ins using] [diff]
2009-05-24
18:04
Always use #include "config.h" instead of #import "config.h". file: [acf9e5847a] check-in: [94ea6848a8] user: js, branch: trunk, size: 3498 [annotate] [blame] [check-ins using] [diff]
2009-05-15
22:59
As we memset our ivars to 0, get rid of some useless ivar inits. file: [28fabc1d44] check-in: [4c6d6c56ac] user: js, branch: trunk, size: 3497 [annotate] [blame] [check-ins using] [diff]
2009-05-14
14:24
Get rid of OFNotInSetException. file: [f142cdc00e] check-in: [bdc9b3219f] user: js, branch: trunk, size: 3533 [annotate] [blame] [check-ins using] [diff]
2009-05-13
20:31
Rename - free to - (void)dealloc. file: [e453479303] check-in: [9e6dd00ef5] user: js, branch: trunk, size: 3637 [annotate] [blame] [check-ins using] [diff]
2009-05-04
12:57
Add Thread Local Storage support to OFThread. file: [afc7a8ea8e] check-in: [4d1d644283] user: js, branch: trunk, size: 3623 [annotate] [blame] [check-ins using] [diff]
2009-05-01
20:24
Added: Preliminary OFThread implementation. file: [170f123979] check-in: [e5bcc6a3be] user: js, branch: trunk, size: 2194 [annotate] [blame] [check-ins using]