ObjFW  History of src/OFThread.m of f4dacdcd6bb38be0

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

2024-04-29
21:42
[f0b78222ad] part of check-in [f16bccc7b3] Properly hide private symbols (check-in: [f16bccc7b3] user: js, branch: trunk, size: 11328) [annotate] [blame] [check-ins using] [diff]
2024-04-03
02:16
[c590c3dc16] part of check-in [7413a728a7] Change license to LGPLv3 only (check-in: [7413a728a7] user: js, branch: trunk, size: 11326) [annotate] [blame] [check-ins using] [diff]
2024-04-01
15:59
[ce6ddb874b] part of check-in [cf0effe834] Remove #define __NO_EXT_QNX

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

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

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

2020-12-20
21:26
[7d209d5958] part of check-in [5b37fbeb82] 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. (check-in: [5b37fbeb82] user: js, branch: trunk, size: 10869) [annotate] [blame] [check-ins using] [diff]

2020-12-06
17:49
[fe4bfba4ee] part of check-in [b45a563f2b] 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. (check-in: [b45a563f2b] user: js, branch: trunk, size: 10804) [annotate] [blame] [check-ins using] [diff]

2020-09-27
03:08
[690c42ccaa] part of check-in [9e9ce6aa1c] Work around bugs in Apple GCC 4.0.1

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

00:57
[64242ae003] part of check-in [cbc09c6e26] Work around bugs in Apple GCC 4.2.1 (check-in: [cbc09c6e26] user: js, branch: trunk, size: 10778) [annotate] [blame] [check-ins using] [diff]
2020-01-24
03:03
[5a3f2982c0] part of check-in [e7f4f80e23] 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. (check-in: [e7f4f80e23] user: js, branch: trunk, size: 10770) [annotate] [blame] [check-ins using] [diff]

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

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

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

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

15:29
[67276b0c18] part of check-in [77780c7596] 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. (check-in: [77780c7596] user: js, branch: trunk, size: 10645) [annotate] [blame] [check-ins using] [diff]

12:50
[fe6d085eae] part of check-in [d7fd999fee] {condition,mutex,thread}.m: Set errno on error (check-in: [d7fd999fee] user: js, branch: trunk, size: 10585) [annotate] [blame] [check-ins using] [diff]
2019-08-11
18:56
[d2706d56fe] part of check-in [a40f3fc829] Support sockets in multiple threads on AmigaOS (check-in: [a40f3fc829] user: js, branch: trunk, size: 10421) [annotate] [blame] [check-ins using] [diff]
2019-08-10
02:06
[ec9da598dc] part of check-in [3292a6fdbc] Clean up the AmigaOS 4 library mess (check-in: [3292a6fdbc] user: js, branch: trunk, size: 9771) [annotate] [blame] [check-ins using] [diff]
2019-08-03
18:13
[0f6e6aa5d7] part of check-in [da383f4f03] Add threads for AmigaOS (check-in: [da383f4f03] user: js, branch: trunk, size: 10529) [annotate] [blame] [check-ins using] [diff]
2019-08-02
12:23
[83f93c8053] part of check-in [a2ab241bc7] OFThread: Set main thread to running (check-in: [a2ab241bc7] user: js, branch: trunk, size: 10512) [annotate] [blame] [check-ins using] [diff]
2019-08-01
20:14
[6c09ccf959] part of check-in [5358e9ea6a] 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. (check-in: [5358e9ea6a] user: js, branch: trunk, size: 10469) [annotate] [blame] [check-ins using] [diff]

2019-07-28
12:32
[0906d8e684] part of check-in [b5430ac44f] OFThread: Don't require of_thread_exit()

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

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

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

2018-08-17
01:17
[b00f8ab9a5] part of check-in [d71abc5366] AmigaOS 4: Do not use libauto

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

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

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

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

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

14:46
[a7a9564a2b] part of check-in [3c20dd5f95] Use trunc() instead of floor() in several places

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

2018-05-13
19:24
[9adc83c2c8] part of check-in [5831626f68] platform.h: Rename OF_AMIGAOS3 to OF_AMIGAOS_M68K

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

2018-04-23
22:19
[19b90357c1] part of check-in [b16fc262c0] Use more native AmigaOS APIs on AmigaOS 3 (check-in: [b16fc262c0] user: js, branch: trunk, size: 9279) [annotate] [blame] [check-ins using] [diff]
2018-04-22
17:48
[6fbe74a9ed] part of check-in [0b07c8fcfa] Make ObjFW compile for AmigaOS 3 (check-in: [0b07c8fcfa] user: js, branch: trunk, size: 9275) [annotate] [blame] [check-ins using] [diff]
16:13
[87b40649c1] part of check-in [fe2cbe0021] 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. (check-in: [fe2cbe0021] user: js, branch: trunk, size: 9221) [annotate] [blame] [check-ins using] [diff]

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

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

2017-10-17
00:33
[2b6b7f737c] part of check-in [2f4e0df8be] 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. (check-in: [2f4e0df8be] user: js, branch: trunk, size: 9236) [annotate] [blame] [check-ins using] [diff]

2017-10-07
15:14
[3fc1c7c412] part of check-in [1a502ac38c] OFThread: Fix setting the name on the wrong thread

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

15:12
[41a9132f9a] part of check-in [c211f691e7] OFThread: Fix setting the name on the wrong thread

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

14:57
[2f9aa72b9d] part of check-in [76ee8ab481] OFThread: Support setting the name while running (check-in: [76ee8ab481] user: js, branch: trunk, size: 9152) [annotate] [blame] [check-ins using] [diff]
10:46
[e0cab8357e] part of check-in [1d0042a040] 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. (check-in: [1d0042a040] user: js, branch: 0.90, size: 8737) [annotate] [blame] [check-ins using] [diff]

10:46
[e635f40c39] part of check-in [1494d3f6f1] 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. (check-in: [1494d3f6f1] user: js, branch: trunk, size: 8775) [annotate] [blame] [check-ins using] [diff]

2017-09-28
23:02
[488341d5ad] part of check-in [2de9660312] Enable -Wnullable-to-nonnull-conversion and adjust (check-in: [2de9660312] user: js, branch: trunk, size: 9081) [annotate] [blame] [check-ins using] [diff]
2017-09-26
22:40
[c1e478224c] part of check-in [c9efebeff9] Work around Clang analyzer false positives (check-in: [c9efebeff9] user: js, branch: trunk, size: 9068) [annotate] [blame] [check-ins using] [diff]
2017-06-04
18:48
[3ff1e2b592] part of check-in [c9621825fc] 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. (check-in: [c9621825fc] user: js, branch: trunk, size: 9030) [annotate] [blame] [check-ins using] [diff]

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

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

2017-05-17
22:07
[3b9d6bd50a] part of check-in [8e84561642] 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. (check-in: [8e84561642] user: js, branch: trunk, size: 8921) [annotate] [blame] [check-ins using] [diff]

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

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

2017-01-09
17:36
[44538b1550] part of check-in [44f45c2e35] Update copyright

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

2016-04-18
17:22
[f54c089de2] part of check-in [ad9813cef0] OFThread: Fix missing include

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

17:00
[b9ed17bd65] part of check-in [e630807216] OFThread: Fix missing include

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

2016-02-21
20:41
[d451c32cdd] part of check-in [032bfb52ed] OFThread: Sleep using svcSleepThread() on 3DS

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

2016-01-03
00:43
[9d8e398251] part of check-in [cec0f072f8] Update copyright

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

00:41
[b26e7541e7] part of check-in [2a27cf3000] Update copyright

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

2015-11-29
11:43
[ed37db867b] part of check-in [48980f2297] 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). (check-in: [48980f2297] user: js, branch: trunk, size: 8707) [annotate] [blame] [check-ins using] [diff]

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

2014-07-19
16:27
[b9ff0cb8da] part of check-in [c4f724070a] OFThread: Configurable priority and stack size (check-in: [c4f724070a] user: js, branch: trunk, size: 8603) [annotate] [blame] [check-ins using] [diff]
16:16
[8e23861680] part of check-in [2c78c6570b] Add of_thread_set_name() (check-in: [2c78c6570b] user: js, branch: trunk, size: 7899) [annotate] [blame] [check-ins using] [diff]
09:55
[4615b52a3c] part of check-in [716b1fc2b3] 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__)). (check-in: [716b1fc2b3] user: js, branch: trunk, size: 7976) [annotate] [blame] [check-ins using] [diff]

2014-06-21
21:43
[fc3b904999] part of check-in [13ee56edf3] 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. (check-in: [13ee56edf3] user: js, branch: trunk, size: 7968) [annotate] [blame] [check-ins using] [diff]

2014-05-29
21:27
[57ac3c2fe7] part of check-in [d1e559b643] Work around __block being used by old glibc (check-in: [d1e559b643] user: js, branch: trunk, size: 8011) [annotate] [blame] [check-ins using] [diff]
2014-05-15
01:50
[96b5d11fcf] part of check-in [17be12b6e5] 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. (check-in: [17be12b6e5] user: js, branch: trunk, size: 7920) [annotate] [blame] [check-ins using] [diff]

2014-05-05
02:43
[75412d8593] part of check-in [b885b6fdfa] Add OF_NO_RETURN and OF_UNREACHABLE (check-in: [b885b6fdfa] user: js, branch: trunk, size: 7974) [annotate] [blame] [check-ins using] [diff]
01:08
[68ca15bbc7] part of check-in [a92844520a] Improve atomics API (check-in: [a92844520a] user: js, branch: trunk, size: 7770) [annotate] [blame] [check-ins using] [diff]
2014-04-27
19:34
[d65d9ab0c1] part of check-in [cd0a632472] Initial Nintendo DS port (check-in: [cd0a632472] user: js, branch: trunk, size: 7770) [annotate] [blame] [check-ins using] [diff]
2014-04-08
18:48
[21b3bcf0e5] part of check-in [82b11a2992] 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. (check-in: [82b11a2992] user: js, branch: trunk, size: 7486) [annotate] [blame] [check-ins using] [diff]

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

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

18:51
[ccb97c5ea7] part of check-in [bfc762c6d8] 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. (check-in: [bfc762c6d8] user: js, branch: trunk, size: 7464) [annotate] [blame] [check-ins using] [diff]

2014-02-18
00:22
[1302d2a050] part of check-in [f9d12201f8] Move around a few defines to be more consistent (check-in: [f9d12201f8] user: js, branch: trunk, size: 7485) [annotate] [blame] [check-ins using] [diff]
2014-02-13
23:26
[621dd2e5a4] part of check-in [2f5af58573] 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. (check-in: [2f5af58573] user: js, branch: trunk, size: 7487) [annotate] [blame] [check-ins using] [diff]

2014-01-16
23:09
[bbc593cb97] part of check-in [dc31ce3d34] Add of_time_interval_t.

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

2014-01-04
00:24
[4151197f7a] part of check-in [3b97fc3cd9] Update copyright. (check-in: [3b97fc3cd9] user: js, branch: trunk, size: 7382) [annotate] [blame] [check-ins using] [diff]
2013-12-15
18:11
[ac1a8ee7d6] part of check-in [ffe7645e3a] Fix a few minor bugs found by the Clang Analyzer. (check-in: [ffe7645e3a] user: js, branch: trunk, size: 7376) [annotate] [blame] [check-ins using] [diff]
2013-12-05
17:48
[8a5ecd213c] part of check-in [fa6496efc7] 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. (check-in: [fa6496efc7] user: js, branch: trunk, size: 7375) [annotate] [blame] [check-ins using] [diff]

2013-12-01
02:08
[d3db130196] part of check-in [a0b63a8df4] 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). (check-in: [a0b63a8df4] user: js, branch: trunk, size: 7383) [annotate] [blame] [check-ins using] [diff]

2013-11-30
19:53
[b5e162fd36] part of check-in [bd2389b6b8] 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. (check-in: [bd2389b6b8] user: js, branch: trunk, size: 7299) [annotate] [blame] [check-ins using] [diff]

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

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

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

2013-06-22
12:12
[6bf58b8f5f] part of check-in [3d16a30f41] 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. (check-in: [3d16a30f41] user: js, branch: trunk, size: 7640) [annotate] [blame] [check-ins using] [diff]

2013-04-26
22:25
[cdfc8ccff6] part of check-in [c01ed004b0] Better checks for functions used in OFFile. (check-in: [c01ed004b0] user: js, branch: trunk, size: 7811) [annotate] [blame] [check-ins using] [diff]
21:10
[64480ed795] part of check-in [db70226153] Use nanosleep() if available. (check-in: [db70226153] user: js, branch: trunk, size: 7789) [annotate] [blame] [check-ins using] [diff]
20:40
[426c027f93] part of check-in [71d45a29d1] 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. (check-in: [71d45a29d1] user: js, branch: trunk, size: 7825) [annotate] [blame] [check-ins using] [diff]

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

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

2013-02-12
18:22
[d1deb64582] part of check-in [e40729d406] Prefix all ivars with an underscore. (check-in: [e40729d406] user: js, branch: trunk, size: 7419) [annotate] [blame] [check-ins using] [diff]
2013-01-15
02:11
[750512444c] part of check-in [d0eb2ddd31] OFThread: Fix compilation without atomic ops. (check-in: [d0eb2ddd31] user: js, branch: trunk, size: 7376) [annotate] [blame] [check-ins using] [diff]
2013-01-09
22:24
[4dcc89a58d] part of check-in [813c00ccf0] Update copyright. (check-in: [813c00ccf0] user: js, branch: trunk, size: 7215) [annotate] [blame] [check-ins using] [diff]
2012-12-22
15:37
[ba81cccfd2] part of check-in [917ce5754c] Add -[doesNotRecognizeSelector:]. (check-in: [917ce5754c] user: js, branch: trunk, size: 7209) [annotate] [blame] [check-ins using] [diff]
2012-12-09
12:13
[bdce062fba] part of check-in [2b7a70e246] Split OFHTTPRequest into OFHTTP{Client,Request}. (check-in: [2b7a70e246] user: js, branch: trunk, size: 7247) [annotate] [blame] [check-ins using] [diff]
2012-11-10
10:27
[eb2ad7e37f] part of check-in [debba8efb6] 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. (check-in: [debba8efb6] user: js, branch: trunk, size: 7249) [annotate] [blame] [check-ins using] [diff]

00:14
[378318c425] part of check-in [0639a351db] 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. (check-in: [0639a351db] user: js, branch: trunk, size: 6766) [annotate] [blame] [check-ins using] [diff]

2012-10-26
11:04
[94dbbf6fa0] part of check-in [0a55edad35] Split OFThread.m into multiple files.

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

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

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

12:09
[b865223801] part of check-in [2e484248de] Make it impossible to add objects to arbitrary autorelease pools.

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

02:20
[a10047f5e7] part of check-in [45b499fb11] Use rint() instead of nearbyint().

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

2011-09-21
20:11
[9734ed9f86] part of check-in [49ec1216cd] More precision for microseconds. (check-in: [49ec1216cd] user: js, branch: trunk, size: 9673) [annotate] [blame] [check-ins using] [diff]
2011-09-19
11:39
[e46284151e] part of check-in [6ec0a033bd] Fix calculation of microseconds. (check-in: [6ec0a033bd] user: js, branch: trunk, size: 9643) [annotate] [blame] [check-ins using] [diff]
2011-09-17
20:17
[95ced5e160] part of check-in [c19b2b5726] 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. (check-in: [c19b2b5726] user: js, branch: trunk, size: 9659) [annotate] [blame] [check-ins using] [diff]

15:20
[8714631aa6] part of check-in [4bef853a72] Change OFDate to use and export doubles. (check-in: [4bef853a72] user: js, branch: trunk, size: 9982) [annotate] [blame] [check-ins using] [diff]
2011-09-10
23:54
[f4c5d36434] part of check-in [3687c35784] Make use of the fact that -[retain] and -[release] must not throw. (check-in: [3687c35784] user: js, branch: trunk, size: 10257) [annotate] [blame] [check-ins using] [diff]
18:36
[28529a39cf] part of check-in [972a3ee40d] Remove -[finalize] as ARC will be implemented instead of a GC. (check-in: [972a3ee40d] user: js, branch: trunk, size: 10380) [annotate] [blame] [check-ins using] [diff]
2011-07-17
01:55
[e52975424c] part of check-in [59e52af26d] 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. (check-in: [59e52af26d] user: js, branch: 0.5, size: 9210) [annotate] [blame] [check-ins using] [diff]

01:55
[8d6289db16] part of check-in [da2701ad14] 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. (check-in: [da2701ad14] user: js, branch: trunk, size: 11372) [annotate] [blame] [check-ins using] [diff]

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

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

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

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