71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
#endif
#import "OFInitializationFailedException.h"
#import "OFInvalidArgumentException.h"
#import "OFNotImplementedException.h"
#import "OFOutOfRangeException.h"
#ifdef OF_HAVE_THREADS
# import "OFThreadJoinFailedException.h"
# import "OFThreadStartFailedException.h"
# import "OFThreadStillRunningException.h"
#endif
#ifdef OF_MINT
/* freemint-gcc does not have trunc() */
# define trunc(x) ((int64_t)(x))
#endif
|
|
|
|
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
#endif
#import "OFInitializationFailedException.h"
#import "OFInvalidArgumentException.h"
#import "OFNotImplementedException.h"
#import "OFOutOfRangeException.h"
#ifdef OF_HAVE_THREADS
# import "OFJoinThreadFailedException.h"
# import "OFStartThreadFailedException.h"
# import "OFThreadStillRunningException.h"
#endif
#ifdef OF_MINT
/* freemint-gcc does not have trunc() */
# define trunc(x) ((int64_t)(x))
#endif
|
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
|
[self retain];
_running = OFThreadStateRunning;
if ((error = OFPlainThreadNew(&_thread, [_name cStringWithEncoding:
[OFLocale encoding]], callMain, self, &_attr)) != 0) {
[self release];
@throw [OFThreadStartFailedException
exceptionWithThread: self
errNo: error];
}
}
- (id)join
{
int error;
if (_running == OFThreadStateNotRunning)
@throw [OFThreadJoinFailedException
exceptionWithThread: self
errNo: EINVAL];
if ((error = OFPlainThreadJoin(_thread)) != 0)
@throw [OFThreadJoinFailedException exceptionWithThread: self
errNo: error];
_running = OFThreadStateNotRunning;
return _returnValue;
}
|
|
|
|
|
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
|
[self retain];
_running = OFThreadStateRunning;
if ((error = OFPlainThreadNew(&_thread, [_name cStringWithEncoding:
[OFLocale encoding]], callMain, self, &_attr)) != 0) {
[self release];
@throw [OFStartThreadFailedException
exceptionWithThread: self
errNo: error];
}
}
- (id)join
{
int error;
if (_running == OFThreadStateNotRunning)
@throw [OFJoinThreadFailedException
exceptionWithThread: self
errNo: EINVAL];
if ((error = OFPlainThreadJoin(_thread)) != 0)
@throw [OFJoinThreadFailedException exceptionWithThread: self
errNo: error];
_running = OFThreadStateNotRunning;
return _returnValue;
}
|