ObjFW  History of src/OFThread.h of c2d05e0469ee00ea

History of the file that is called src/OFThread.h at check-in c2d05e0469ee00ea

2024-04-03
02:16
[c158340505] part of check-in [7413a728a7] Change license to LGPLv3 only (check-in: [7413a728a7] user: js, branch: trunk, size: 8784) [annotate] [blame] [check-ins using] [diff]
2024-02-03
08:53
[ae2605e43f] part of check-in [19f3948a26] Fix typos in documentation found by spell checker (check-in: [19f3948a26] user: js, branch: 1.0, size: 8576) [annotate] [blame] [check-ins using] [diff]
08:49
[5de5608550] part of check-in [f97dc452b1] Fix typos in documentation found by spell checker (check-in: [f97dc452b1] user: js, branch: trunk, size: 8576) [annotate] [blame] [check-ins using] [diff]
2024-01-02
17:17
[99dddf0f6e] part of check-in [26ddd2e4e4] Update copyright (check-in: [26ddd2e4e4] user: js, branch: trunk, size: 8574) [annotate] [blame] [check-ins using] [diff]
2023-01-06
09:04
[44ae8d6a81] part of check-in [8939cbdb52] Update copyright (check-in: [8939cbdb52] user: js, branch: trunk, size: 8574) [annotate] [blame] [check-ins using] [diff]
2022-10-23
16:21
[b1484db738] part of check-in [2872ce314d] Rename a few exceptions for consistency (check-in: [2872ce314d] user: js, branch: trunk, size: 8574) [annotate] [blame] [check-ins using] [diff]
2022-10-20
18:58
[07323e0345] part of check-in [7538082267] Document more exceptions (check-in: [7538082267] user: js, branch: trunk, size: 8574) [annotate] [blame] [check-ins using] [diff]
2022-08-29
20:15
[878e01b6fc] part of check-in [0cca95da46] OFThread: Rename threadBlock to block (check-in: [0cca95da46] user: js, branch: trunk, size: 7890) [annotate] [blame] [check-ins using] [diff]
2022-02-12
07:46
[edfcfa680d] part of check-in [1a86b8175b] Update copyright (check-in: [1a86b8175b] user: js, branch: trunk, size: 7802) [annotate] [blame] [check-ins using] [diff]
2021-04-18
20:51
[1a5414b6ff] part of check-in [35de667566] Rename everything in several smaller files (check-in: [35de667566] user: js, branch: new-naming-convention, size: 7802) [annotate] [blame] [check-ins using] [diff]
2021-04-17
16:03
[ae8279dba9] part of check-in [65510fa56b] of_thread_t -> OFPlainThread (check-in: [65510fa56b] user: js, branch: new-naming-convention, size: 7796) [annotate] [blame] [check-ins using] [diff]
03:21
[4486e81af4] part of check-in [c4e0e56fa3] Rename all blocks (check-in: [c4e0e56fa3] user: js, branch: new-naming-convention, size: 7785) [annotate] [blame] [check-ins using] [diff]
00:51
[ac920e666c] part of check-in [8c0d76f782] of_time_interval_t -> OFTimeInterval (check-in: [8c0d76f782] user: js, branch: new-naming-convention, size: 7809) [annotate] [blame] [check-ins using] [diff]
2021-01-02
22:04
[f4a6bc3a11] part of check-in [374e1a1bfa] Update copyright (check-in: [374e1a1bfa] user: js, branch: trunk, size: 7813) [annotate] [blame] [check-ins using] [diff]
2020-10-03
11:35
[a47e26d1ae] part of check-in [163a4a5a2e] Use /** */ instead of /*! */ for documentation (check-in: [163a4a5a2e] user: js, branch: trunk, size: 7902) [annotate] [blame] [check-ins using] [diff]
2020-09-26
21:58
[e49332cd5c] part of check-in [ef614a225d] Don't require __COUNTER__ for OF_RESERVE_IVARS

__COUNTER__ does not exist in GCC 4.2, and Apple GCC 4.2 is still the
newest compiler available for macOS 10.5. (check-in: [ef614a225d] user: js, branch: trunk, size: 7902) [annotate] [blame] [check-ins using] [diff]

2020-01-24
03:03
[4c0a8350b3] 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: 7892) [annotate] [blame] [check-ins using] [diff]

2020-01-02
01:51
[ccaa08b8db] part of check-in [c7f0229795] Update copyright (check-in: [c7f0229795] user: js, branch: trunk, size: 7858) [annotate] [blame] [check-ins using] [diff]
2019-09-29
20:53
[c31c7a3537] part of check-in [e0a330b377] Reduce ivar scopes (check-in: [e0a330b377] user: js, branch: trunk, size: 7855) [annotate] [blame] [check-ins using] [diff]
19:48
[156e47b532] part of check-in [3be624ded9] Documentation fixes (check-in: [3be624ded9] user: js, branch: trunk, size: 7902) [annotate] [blame] [check-ins using] [diff]
19:35
[1d8bb7f623] part of check-in [496695d778] Either restrict subclassing or reserve ivar space

This allows ABI stability with the fragile ABI. (check-in: [496695d778] user: js, branch: trunk, size: 7898) [annotate] [blame] [check-ins using] [diff]

2019-09-01
18:22
[f2bf600216] part of check-in [8a2fa8eff4] Add +[OFThread isMainThread] (check-in: [8a2fa8eff4] user: js, branch: trunk, size: 7877) [annotate] [blame] [check-ins using] [diff]
2019-08-11
18:56
[f242100e35] part of check-in [a40f3fc829] Support sockets in multiple threads on AmigaOS (check-in: [a40f3fc829] user: js, branch: trunk, size: 7662) [annotate] [blame] [check-ins using] [diff]
2019-08-01
20:14
[dc390a6e23] 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: 7095) [annotate] [blame] [check-ins using] [diff]

2019-07-28
12:32
[deb7104407] 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: 7098) [annotate] [blame] [check-ins using] [diff]

2019-01-03
19:13
[5c37148b66] part of check-in [0509d7a844] Update copyright (check-in: [0509d7a844] user: js, branch: trunk, size: 7058) [annotate] [blame] [check-ins using] [diff]
2018-08-11
20:25
[76cb344740] 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: 7052) [annotate] [blame] [check-ins using] [diff]

2018-06-16
14:15
[69e72c6c45] part of check-in [7d86d2dd2b] Wrap a few @public in #ifdefs (check-in: [7d86d2dd2b] user: js, branch: trunk, size: 6596) [annotate] [blame] [check-ins using] [diff]
2018-01-03
19:49
[6257fe314c] part of check-in [7e5c81e186] Update copyright notice (check-in: [7e5c81e186] user: js, branch: trunk, size: 6612) [annotate] [blame] [check-ins using] [diff]
2017-11-18
18:50
[40cc1f154c] part of check-in [cc3ad3ddd3] Documentation: Use @brief for all properties (check-in: [cc3ad3ddd3] user: js, branch: trunk, size: 6589) [annotate] [blame] [check-ins using] [diff]
2017-11-04
20:54
[cd0a2c76ca] part of check-in [903530213a] Backport more nullability fixes (check-in: [903530213a] user: js, branch: 0.90, size: 6211) [annotate] [blame] [check-ins using] [diff]
2017-10-30
00:23
[8db864191c] part of check-in [a2e849c681] Add class properties where appropriate

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

2017-10-29
21:58
[a03e0a91d4] part of check-in [f3ccf14461] Convert methods to properties where appropriate

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

2017-10-17
00:33
[42f39cebaf] 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: 6832) [annotate] [blame] [check-ins using] [diff]

2017-10-07
14:57
[2fd0087f7e] part of check-in [76ee8ab481] OFThread: Support setting the name while running (check-in: [76ee8ab481] user: js, branch: trunk, size: 6804) [annotate] [blame] [check-ins using] [diff]
11:22
[f66e3d5e03] part of check-in [2f6a0e5ba9] OFThread: Fix the name accidentally being readonly (check-in: [2f6a0e5ba9] user: js, branch: trunk, size: 6184) [annotate] [blame] [check-ins using] [diff]
10:49
[24f32e5db8] part of check-in [3621719bc8] OFThread: Mark the thread block nullable (check-in: [3621719bc8] user: js, branch: trunk, size: 6188) [annotate] [blame] [check-ins using] [diff]
10:46
[c358f93979] 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: 6153) [annotate] [blame] [check-ins using] [diff]

2017-09-26
21:53
[8bc0990f48] part of check-in [52011fbfd6] Many nullability fixes (check-in: [52011fbfd6] user: js, branch: trunk, size: 6331) [annotate] [blame] [check-ins using] [diff]
2017-07-02
19:30
[f3aa3dc787] part of check-in [292b83bb90] Fix tests/objc_sync (check-in: [292b83bb90] user: js, branch: trunk, size: 6311) [annotate] [blame] [check-ins using] [diff]
2017-05-13
22:38
[e4d351df51] part of check-in [504e13cf00] Reduce retain + autorelease (check-in: [504e13cf00] user: js, branch: trunk, size: 6455) [annotate] [blame] [check-ins using] [diff]
2017-05-07
20:10
[04bcc49824] 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: 6426) [annotate] [blame] [check-ins using] [diff]

2017-04-30
13:35
[5cd28cdb35] part of check-in [0a73af49f0] Use nonatomic for properties and clean up

This changes retaining behavior, meaning properties are not returned
retained and autoreleased anymore, so a property returned from a getter
now needs to be manually retained and autoreleased before calling the
setter. However, this is rarely the case and not using atomic improves
performance. (check-in: [0a73af49f0] user: js, branch: trunk, size: 6419) [annotate] [blame] [check-ins using] [diff]

2017-04-02
16:02
[d6804b022e] part of check-in [35934a9594] Avoid the anonymous namespace for ObjC++ with GCC (check-in: [35934a9594] user: js, branch: trunk, size: 6414) [annotate] [blame] [check-ins using] [diff]
2017-02-04
17:45
[15dce17cf3] part of check-in [5a31a537a1] Fix typos in comments and strings found by aspell (check-in: [5a31a537a1] user: js, branch: trunk, size: 6396) [annotate] [blame] [check-ins using] [diff]
2017-01-09
17:36
[4c510e12e2] 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: 6386) [annotate] [blame] [check-ins using] [diff]

2016-03-28
16:50
[383f3c4912] part of check-in [b4023e6bc0] Change the definition of thread priorities

The old definition was quite unpredictable and too platform-specific.
The new one defines -1.0 as lowest priority that still schedules, 0.0 as
the normal priority (meaning the same as the main thread) and +1.0 as
the highest priority that still allows getting preempted. (check-in: [b4023e6bc0] user: js, branch: trunk, size: 6380) [annotate] [blame] [check-ins using] [diff]

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

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

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

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

2015-11-29
11:43
[cd0fc73b17] 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: 5940) [annotate] [blame] [check-ins using] [diff]

2015-11-28
19:47
[c270f45fee] part of check-in [650b4be224] Minor documentation improvements (check-in: [650b4be224] user: js, branch: trunk, size: 6009) [annotate] [blame] [check-ins using] [diff]
2015-11-21
18:35
[5636f9d458] part of check-in [d526d938d7] Remove OF_NULLABLE / OF_NONNULL

Now that Clang switched to use _Nullable and _Nonnull instead of
__nullable / __nonnull, there is no longer a conflict with glibc, which
means we can just define _Nullable / _Nonnull to nothing if they are not
understood by the compiler (which did not work with __nullable /
__nonnull due to this conflict).

This also defines _Null_unspecified to nothing if unavailable. (check-in: [d526d938d7] user: js, branch: trunk, size: 6005) [annotate] [blame] [check-ins using] [diff]

2015-06-14
10:45
[81d5aa4cdd] part of check-in [b7097a67b6] Add OF_NONNULL / OF_NULLABLE and use that instead

Using __nonnull directly doesn't work on systems using glibc, as glibc
defines __nonnull as a parameterized define. While this does not fix the
problem of Clang introducing __nonnull even though it conflicts with
glibc, this at least means it's possible again to compile things with
versions of Clang that don't support __nonnull on systems with glibc. (check-in: [b7097a67b6] user: js, branch: trunk, size: 6007) [annotate] [blame] [check-ins using] [diff]

2015-06-13
22:26
[5030168140] part of check-in [9e76144ef8] Add support for and use the new nullability (check-in: [9e76144ef8] user: js, branch: trunk, size: 6006) [annotate] [blame] [check-ins using] [diff]
2015-06-12
23:59
[2d3c3b4342] part of check-in [5329fe7c1a] Add support for and use the new ObjC generics (check-in: [5329fe7c1a] user: js, branch: trunk, size: 5911) [annotate] [blame] [check-ins using] [diff]
2015-01-03
20:57
[d6ac7e25ad] part of check-in [cfd374b906] Update copyright (check-in: [cfd374b906] user: js, branch: trunk, size: 5879) [annotate] [blame] [check-ins using] [diff]
2014-07-19
16:27
[c8632579ec] part of check-in [c4f724070a] OFThread: Configurable priority and stack size (check-in: [c4f724070a] user: js, branch: trunk, size: 5873) [annotate] [blame] [check-ins using] [diff]
16:16
[dbfdd8a5a4] part of check-in [2c78c6570b] Add of_thread_set_name() (check-in: [2c78c6570b] user: js, branch: trunk, size: 5094) [annotate] [blame] [check-ins using] [diff]
2014-05-14
20:45
[4ccbd9a433] part of check-in [bac91ccede] Add C11 noreturn

If it's unavailable, it's defined to __attribute__((noreturn)).

Unfortunately, it cannot be used for ObjC methods, as noreturn is part
of the return type while __attribute__((noreturn)) needs to be at the
end for an ObjC method. To make matters worse, even GCC versions that
accept noreturn don't allow it for an ObjC method. Thus, the only thing
that can be done is to always use __attribute__((noreturn)) for ObjC
methods using the OF_METHOD_NORETURN define. (check-in: [bac91ccede] user: js, branch: trunk, size: 5097) [annotate] [blame] [check-ins using] [diff]

2014-05-05
02:43
[bd27888ffe] part of check-in [b885b6fdfa] Add OF_NO_RETURN and OF_UNREACHABLE (check-in: [b885b6fdfa] user: js, branch: trunk, size: 5085) [annotate] [blame] [check-ins using] [diff]
2014-02-18
18:50
[7e258abb92] part of check-in [246cfe0807] Documentation: Show correct imports (check-in: [246cfe0807] user: js, branch: trunk, size: 5059) [annotate] [blame] [check-ins using] [diff]
2014-01-16
23:09
[42d02c0030] 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: 5009) [annotate] [blame] [check-ins using] [diff]

2014-01-04
00:24
[384c6bb853] part of check-in [3b97fc3cd9] Update copyright. (check-in: [3b97fc3cd9] user: js, branch: trunk, size: 4987) [annotate] [blame] [check-ins using] [diff]
2013-11-23
01:14
[f1d325f290] part of check-in [3ab5dace83] Add OF_REQUIRES_SUPER. (check-in: [3ab5dace83] user: js, branch: trunk, size: 4981) [annotate] [blame] [check-ins using] [diff]
2013-09-15
18:51
[9a4feafde7] part of check-in [29e4d00225] OFAutoreleasePool: Free pool cache on thread exit. (check-in: [29e4d00225] user: js, branch: trunk, size: 4963) [annotate] [blame] [check-ins using] [diff]
2013-08-15
19:00
[79574f891b] part of check-in [1d7a1cbca0] Move private methods into private headers. (check-in: [1d7a1cbca0] user: js, branch: trunk, size: 4949) [annotate] [blame] [check-ins using] [diff]
2013-07-28
21:07
[1a40d77417] part of check-in [1eaf875a88] Replace OFTLSKey w/ +[OFThread threadDictionary]. (check-in: [1eaf875a88] user: js, branch: trunk, size: 4979) [annotate] [blame] [check-ins using] [diff]
2013-07-24
11:49
[73a6ba9e6f] part of check-in [7e5de0a086] Improve documentation. (check-in: [7e5de0a086] user: js, branch: trunk, size: 5714) [annotate] [blame] [check-ins using] [diff]
2013-06-30
18:30
[a1b30840b5] 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: 5571) [annotate] [blame] [check-ins using] [diff]

2013-04-26
20:40
[b4c8773e10] 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: 5523) [annotate] [blame] [check-ins using] [diff]

2013-03-08
22:44
[b48c7d5a0b] part of check-in [e8473b9db8] Document the block types.

This also removes "bool *stop" from some blocks where it does not make
sense. (check-in: [e8473b9db8] user: js, branch: trunk, size: 5380) [annotate] [blame] [check-ins using] [diff]

2013-02-12
18:22
[abb9dc92a6] part of check-in [e40729d406] Prefix all ivars with an underscore. (check-in: [e40729d406] user: js, branch: trunk, size: 5232) [annotate] [blame] [check-ins using] [diff]
2013-01-14
19:02
[daf9be21c3] part of check-in [30ab311006] Documentation improvements. (check-in: [30ab311006] user: js, branch: trunk, size: 5226) [annotate] [blame] [check-ins using] [diff]
2013-01-09
22:24
[c73b2d3613] part of check-in [813c00ccf0] Update copyright. (check-in: [813c00ccf0] user: js, branch: trunk, size: 5223) [annotate] [blame] [check-ins using] [diff]
2012-11-10
10:27
[b43535f12f] 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: 5217) [annotate] [blame] [check-ins using] [diff]

00:14
[9008bb5cf4] 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: 4881) [annotate] [blame] [check-ins using] [diff]

2012-11-03
22:20
[86aa6ed7ff] part of check-in [9667b3fd54] Small workaround for a Haiku bug. (check-in: [9667b3fd54] user: js, branch: 0.7, size: 5382) [annotate] [blame] [check-ins using] [diff]
22:19
[eeffe88350] part of check-in [ac70a7059f] Small workaround for a Haiku bug. (check-in: [ac70a7059f] user: js, branch: trunk, size: 5382) [annotate] [blame] [check-ins using] [diff]
2012-10-28
12:38
[f5f613cd72] part of check-in [1ad9565253] Switch to a headerdoc-compatible doc format. (check-in: [1ad9565253] user: js, branch: trunk, size: 5262) [annotate] [blame] [check-ins using] [diff]
2012-10-26
11:04
[384da59e46] 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: 5262) [annotate] [blame] [check-ins using] [diff]

10:16
[ac4e14b1b1] part of check-in [cbf1901c7f] Add OF_ prefix to a private method missing it. (check-in: [cbf1901c7f] user: js, branch: trunk, size: 7588) [annotate] [blame] [check-ins using] [diff]
2012-10-09
15:07
[f7ea444098] part of check-in [fb515e8e24] Make use of instancetype. (check-in: [fb515e8e24] user: js, branch: trunk, size: 7585) [annotate] [blame] [check-ins using] [diff]
2012-10-02
00:04
[db7d8eaae9] part of check-in [31ff715036] Remove [OFThread initWithObject:block:]. (check-in: [31ff715036] user: js, branch: trunk, size: 7487) [annotate] [blame] [check-ins using] [diff]
2012-09-16
22:26
[fd48a1729f] part of check-in [4c8f9edda8] Every OFThread now always has a run loop. (check-in: [4c8f9edda8] user: js, branch: trunk, size: 8147) [annotate] [blame] [check-ins using] [diff]
15:27
[ea0984f710] part of check-in [c137da5e5b] Prefix all private methods with OF_. (check-in: [c137da5e5b] user: js, branch: trunk, size: 8250) [annotate] [blame] [check-ins using] [diff]
13:23
[cf6df87507] part of check-in [0cfbbb367a] Slightly refactor OFRunLoop. (check-in: [0cfbbb367a] user: js, branch: trunk, size: 8246) [annotate] [blame] [check-ins using] [diff]
2012-09-15
12:21
[053c62f685] part of check-in [cf8db6867d] OFThread: Make the block the last argument. (check-in: [cf8db6867d] user: js, branch: trunk, size: 8097) [annotate] [blame] [check-ins using] [diff]
12:20
[c69b3187df] part of check-in [2929f89f3e] OFThread: Implement the OFCopying protocol. (check-in: [2929f89f3e] user: js, branch: trunk, size: 8093) [annotate] [blame] [check-ins using] [diff]
2012-09-11
16:48
[2e194b355b] part of check-in [a4494ec477] Add OFTimer and OFRunLoop. (check-in: [a4494ec477] user: js, branch: trunk, size: 7799) [annotate] [blame] [check-ins using] [diff]
13:41
[82f143b8db] part of check-in [1dc2f0b15f] The ivar "object" of OFThread should be protected. (check-in: [1dc2f0b15f] user: js, branch: trunk, size: 7611) [annotate] [blame] [check-ins using] [diff]
2012-09-09
17:50
[ee8e77c050] part of check-in [3b1c4cc681] Make thread ivars private. (check-in: [3b1c4cc681] user: js, branch: trunk, size: 7590) [annotate] [blame] [check-ins using] [diff]
17:48
[3a25c292f8] part of check-in [ead7b7acd3] Make the main thread an OFThread. (check-in: [ead7b7acd3] user: js, branch: trunk, size: 7549) [annotate] [blame] [check-ins using] [diff]
2012-08-05
17:34
[51a42ce92e] part of check-in [6069030651] Add OFRecursiveMutex class. (check-in: [6069030651] user: js, branch: trunk, size: 7458) [annotate] [blame] [check-ins using] [diff]
2012-07-03
15:49
[2dc62c0de7] part of check-in [4d18a4b596] Use the copy attribute in properties for blocks.

Newer clang versions don't allow the retain attribute for blocks
anymore. (check-in: [4d18a4b596] user: js, branch: trunk, size: 7294) [annotate] [blame] [check-ins using] [diff]

2012-01-05
00:56
[8fb7bca3d7] part of check-in [ce70e17b38] Update copyright. (check-in: [ce70e17b38] user: js, branch: trunk, size: 7296) [annotate] [blame] [check-ins using] [diff]
2011-09-17
20:17
[f4f9d56218] 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: 7290) [annotate] [blame] [check-ins using] [diff]

2011-09-11
17:09
[94d47672c0] part of check-in [8d554c0421] Documentation improvements. (check-in: [8d554c0421] user: js, branch: trunk, size: 7587) [annotate] [blame] [check-ins using] [diff]
2011-07-06
22:49
[965a5e323a] part of check-in [d966ede8fe] Add +[threadWithBlock:] to OFThread. (check-in: [d966ede8fe] user: js, branch: trunk, size: 6698) [annotate] [blame] [check-ins using] [diff]
22:40
[8b6bb2dcce] part of check-in [c92627ff31] Documentation fixes. (check-in: [c92627ff31] user: js, branch: 0.5, size: 5550) [annotate] [blame] [check-ins using] [diff]
22:39
[7979d66d62] part of check-in [16ce0fea69] Documentation fixes. (check-in: [16ce0fea69] user: js, branch: trunk, size: 5618) [annotate] [blame] [check-ins using] [diff]
2011-04-22
22:46
[035bd5514f] part of check-in [c9c78d86d3] More style improvements. (check-in: [c9c78d86d3] user: js, branch: trunk, size: 5608) [annotate] [blame] [check-ins using] [diff]
2011-03-28
23:54
[a4a4af59a1] part of check-in [12dd2db6ce] One more workaround for a bug in gcc 4.4.4 (possibly only Haiku). (check-in: [12dd2db6ce] user: js, branch: trunk, size: 5552) [annotate] [blame] [check-ins using] [diff]
2011-03-07
16:00
[b9567d8482] part of check-in [615eb3e46b] Add class OFCondition. (check-in: [615eb3e46b] user: js, branch: trunk, size: 5386) [annotate] [blame] [check-ins using] [diff]
2011-01-18
20:58
[365e7ac8cd] part of check-in [bdfcb94f18] Add +[thread] to OFThread and allow -[init]. (check-in: [bdfcb94f18] user: js, branch: trunk, size: 4894) [annotate] [blame] [check-ins using] [diff]
2011-01-11
22:45
[2f02e73fed] part of check-in [eb374bb382] Rename tlsKey -> TLSKey. Acronyms are always uppercase! (check-in: [eb374bb382] user: js, branch: trunk, size: 4836) [annotate] [blame] [check-ins using] [diff]
22:43
[5c73dd92a3] part of check-in [e9e263d62a] Fix missing retain + autorelease in TLS-object handling. (check-in: [e9e263d62a] user: js, branch: trunk, size: 4836) [annotate] [blame] [check-ins using] [diff]
22:03
[fdc4c85c01] part of check-in [219a630ef0] Replace -[sleepForNMilliseconds:] with -[sleepForTimeInterval:]. (check-in: [219a630ef0] user: js, branch: trunk, size: 4879) [annotate] [blame] [check-ins using] [diff]
19:59
[0e4696b05c] part of check-in [3fbc337547] Add +[sleepUntilDate:] to OFDate. (check-in: [3fbc337547] user: js, branch: trunk, size: 4566) [annotate] [blame] [check-ins using] [diff]
2011-01-01
20:19
[c73592c469] part of check-in [da6b3d26cb] Change license. (check-in: [da6b3d26cb] user: js, branch: trunk, size: 4432) [annotate] [blame] [check-ins using] [diff]
2010-12-10
11:21
[a62d13b413] part of check-in [fada60d54c] Documentation fixes. (check-in: [fada60d54c] user: js, branch: trunk, size: 4176) [annotate] [blame] [check-ins using] [diff]
2010-11-06
11:44
[7bb5f669dd] part of check-in [f1d813ef6a] More reliable cleanup on failure in OFMutex and OFTLSKey. (check-in: [f1d813ef6a] user: js, branch: trunk, size: 4172) [annotate] [blame] [check-ins using] [diff]
2010-09-05
23:19
[cc3937ad7a] 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: 4134) [annotate] [blame] [check-ins using] [diff]

2010-08-25
11:22
[5849ea0fbe] part of check-in [91ccd70c55] Add warning to doc about collections not retaining and autoreleasing. (check-in: [91ccd70c55] user: js, branch: trunk, size: 4141) [annotate] [blame] [check-ins using] [diff]
2010-04-17
15:46
[fb94c5b01e] 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: 4047) [annotate] [blame] [check-ins using] [diff]
2010-04-11
17:43
[25914ccb95] part of check-in [e5240d68e8] Don't require OFCopying protocol for the thread's object. (check-in: [e5240d68e8] user: js, branch: trunk, size: 3981) [annotate] [blame] [check-ins using] [diff]
2010-04-10
22:33
[f1900f7431] 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: 4019) [annotate] [blame] [check-ins using] [diff]
22:06
[ca016b6bde] part of check-in [1adf3bb9bf] Add +[yield] to OFThread. (check-in: [1adf3bb9bf] user: js, branch: trunk, size: 4016) [annotate] [blame] [check-ins using] [diff]
22:00
[d4b4d3301a] part of check-in [98b8d76bbc] Add +[sleepForNMilliseconds:] to OFThread. (check-in: [98b8d76bbc] user: js, branch: trunk, size: 3892) [annotate] [blame] [check-ins using] [diff]
21:29
[413f614157] 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: 3767) [annotate] [blame] [check-ins using] [diff]
2010-02-19
16:36
[bc1c5f6169] part of check-in [42886185fd] Update copyright. (check-in: [42886185fd] user: js, branch: trunk, size: 3123) [annotate] [blame] [check-ins using] [diff]
2010-02-11
14:58
[a32c294bc5] part of check-in [72caeab860] Documentation improvements. (check-in: [72caeab860] user: js, branch: trunk, size: 3123) [annotate] [blame] [check-ins using] [diff]
2010-01-30
00:50
[24a798f944] part of check-in [20e1c0e24b] Add -[tryLock] to OFMutex. (check-in: [20e1c0e24b] user: js, branch: trunk, size: 3097) [annotate] [blame] [check-ins using] [diff]
2009-12-24
09:17
[469fa957dd] part of check-in [77092d1160] Change type of object in OFThread to id. (check-in: [77092d1160] user: js, branch: trunk, size: 2922) [annotate] [blame] [check-ins using] [diff]
2009-12-02
20:02
[d9ac27e5a8] 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: 2941) [annotate] [blame] [check-ins using] [diff]
2009-11-14
12:17
[03b7369e6c] part of check-in [12101c192f] New solution for TLS key destructors that works on any OS. (check-in: [12101c192f] user: js, branch: trunk, size: 2877) [annotate] [blame] [check-ins using] [diff]
2009-11-09
22:45
[6639eedccb] part of check-in [a3cc34b139] Rename libobjfw to ObjFW. (check-in: [a3cc34b139] user: js, branch: trunk, size: 2765) [annotate] [blame] [check-ins using] [diff]
2009-10-18
19:32
[a3c7f4a17c] part of check-in [19a1167518] Only cancel a thread on -[dealloc] if it's still running. (check-in: [19a1167518] user: js, branch: trunk, size: 2768) [annotate] [blame] [check-ins using] [diff]
2009-10-03
11:51
[cae32ff3af] part of check-in [fad0ff6539] Add +[tlsKey] to OFTLSKey. (check-in: [fad0ff6539] user: js, branch: trunk, size: 2753) [annotate] [blame] [check-ins using] [diff]
2009-09-21
11:15
[894be3846a] part of check-in [15a67e8ee5] Move platform-specific threading stuff to threading.h. (check-in: [15a67e8ee5] user: js, branch: trunk, size: 2611) [annotate] [blame] [check-ins using] [diff]
2009-06-30
12:55
[36e8a35200] part of check-in [973e19f23c] Add some missing documentation. (check-in: [973e19f23c] user: js, branch: trunk, size: 2807) [annotate] [blame] [check-ins using] [diff]
2009-06-01
04:08
[48c9aa376a] part of check-in [ddcee670e4] Optimize OFMutex on Win32 and add missing -[dealloc]. (check-in: [ddcee670e4] user: js, branch: trunk, size: 2809) [annotate] [blame] [check-ins using] [diff]
02:08
[0d2fba1b4a] part of check-in [cca028cedf] Add OFMutex and use it in OFTCPSocket instead of @synchronized. (check-in: [cca028cedf] user: js, branch: trunk, size: 2799) [annotate] [blame] [check-ins using] [diff]
01:46
[b93a3d71df] part of check-in [9b3d408f0d] Copy the object for an OFThread so it's thread-safe. (check-in: [9b3d408f0d] user: js, branch: trunk, size: 2494) [annotate] [blame] [check-ins using] [diff]
2009-05-04
12:57
[5e60e220d4] part of check-in [4d1d644283] Add Thread Local Storage support to OFThread. (check-in: [4d1d644283] user: js, branch: trunk, size: 2474) [annotate] [blame] [check-ins using] [diff]
2009-05-01
20:24
Added: [1ac78297bf] part of check-in [e5bcc6a3be] Preliminary OFThread implementation. (check-in: [e5bcc6a3be] user: js, branch: trunk, size: 1336) [annotate] [blame] [check-ins using]