Differences From Artifact [4615b52a3c]:
- File
src/OFThread.m
— part of check-in
[716b1fc2b3]
at
2014-07-19 09:55:06
on branch trunk
— 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__)). (user: js, size: 7976) [annotate] [blame] [check-ins using]
To Artifact [8e23861680]:
- File src/OFThread.m — part of check-in [2c78c6570b] at 2014-07-19 16:16:13 on branch trunk — Add of_thread_set_name() (user: js, size: 7899) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
32 33 34 35 36 37 38 | # include <unistd.h> #endif #ifdef OF_HAVE_SCHED_YIELD # include <sched.h> #endif | < < < < | 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | # include <unistd.h> #endif #ifdef OF_HAVE_SCHED_YIELD # include <sched.h> #endif #import "OFThread.h" #import "OFThread+Private.h" #import "OFRunLoop.h" #import "OFList.h" #import "OFDate.h" #import "OFDictionary.h" #import "OFAutoreleasePool.h" |
︙ | ︙ | |||
113 114 115 116 117 118 119 | objc_autoreleasePoolPop(thread->_pool); [OFAutoreleasePool OF_handleThreadTermination]; [thread release]; return 0; } | < < < < < < < < < < < < < < | 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | objc_autoreleasePoolPop(thread->_pool); [OFAutoreleasePool OF_handleThreadTermination]; [thread release]; return 0; } #endif @implementation OFThread #ifdef OF_HAVE_THREADS # if defined(OF_HAVE_PROPERTIES) && defined(OF_HAVE_BLOCKS) @synthesize threadBlock = _threadBlock; # endif |
︙ | ︙ | |||
327 328 329 330 331 332 333 | _running = OF_THREAD_RUNNING; if (!of_thread_new(&_thread, callMain, self)) { [self release]; @throw [OFThreadStartFailedException exceptionWithThread: self]; } | | > > > | 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 | _running = OF_THREAD_RUNNING; if (!of_thread_new(&_thread, callMain, self)) { [self release]; @throw [OFThreadStartFailedException exceptionWithThread: self]; } if (_name != nil) of_thread_set_name(_thread, [_name UTF8String]); else of_thread_set_name(_thread, class_getName([self class])); } - (id)join { if (_running == OF_THREAD_NOT_RUNNING || !of_thread_join(_thread)) @throw [OFThreadJoinFailedException exceptionWithThread: self]; |
︙ | ︙ | |||
373 374 375 376 377 378 379 | OF_GETTER(_name, true) } - (void)setName: (OFString*)name { OF_SETTER(_name, name, true, 1) | | > > > | > > | 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 | OF_GETTER(_name, true) } - (void)setName: (OFString*)name { OF_SETTER(_name, name, true, 1) if (_running == OF_THREAD_RUNNING) { if (_name != nil) of_thread_set_name(_thread, [_name UTF8String]); else of_thread_set_name(_thread, class_getName([self class])); } } - (void)dealloc { if (_running == OF_THREAD_RUNNING) @throw [OFThreadStillRunningException exceptionWithThread: self]; |
︙ | ︙ |