1
2
3
4
5
6
7
8
9
|
/*
* Copyright (c) 2008-2022 Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
|
|
|
1
2
3
4
5
6
7
8
9
|
/*
* Copyright (c) 2008-2023 Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
|
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# include <sched.h>
#endif
#include "unistd_wrapper.h"
#include "platform.h"
#ifdef OF_AMIGAOS
# include <proto/exec.h>
# include <proto/dos.h>
#endif
#ifdef OF_WII
# define nanosleep ogc_nanosleep
# include <ogcsys.h>
# undef nanosleep
#endif
|
>
>
|
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
# include <sched.h>
#endif
#include "unistd_wrapper.h"
#include "platform.h"
#ifdef OF_AMIGAOS
# define Class IntuitionClass
# include <proto/exec.h>
# include <proto/dos.h>
# undef Class
#endif
#ifdef OF_WII
# define nanosleep ogc_nanosleep
# include <ogcsys.h>
# undef nanosleep
#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 "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
|
|
|
|
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
#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;
}
|
|
|
|
|
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
464
465
|
[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;
}
|