36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
return false;
attr->priority = (float)(param.sched_priority - minPrio) /
(maxPrio - minPrio);
if (pthread_attr_getstacksize(&pattr, &attr->stackSize) != 0)
return false;
return true;
} @finally {
pthread_attr_destroy(&pattr);
}
}
bool
of_thread_new(of_thread_t *thread, id (*function)(id), id data,
const of_thread_attr_t *attr)
{
pthread_attr_t pattr;
if (pthread_attr_init(&pattr) != 0)
return false;
@try {
if (attr != NULL) {
|
<
<
>
>
>
|
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
return false;
attr->priority = (float)(param.sched_priority - minPrio) /
(maxPrio - minPrio);
if (pthread_attr_getstacksize(&pattr, &attr->stackSize) != 0)
return false;
} @finally {
pthread_attr_destroy(&pattr);
}
return true;
}
bool
of_thread_new(of_thread_t *thread, id (*function)(id), id data,
const of_thread_attr_t *attr)
{
bool ret;
pthread_attr_t pattr;
if (pthread_attr_init(&pattr) != 0)
return false;
@try {
if (attr != NULL) {
|
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
return false;
if (pthread_attr_setstacksize(&pattr,
attr->stackSize) != 0)
return false;
}
return (pthread_create(thread, &pattr,
(void*(*)(void*))function, (__bridge void*)data) == 0);
} @finally {
pthread_attr_destroy(&pattr);
}
}
bool
of_thread_join(of_thread_t thread)
{
void *ret;
|
|
>
>
|
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
return false;
if (pthread_attr_setstacksize(&pattr,
attr->stackSize) != 0)
return false;
}
ret = (pthread_create(thread, &pattr,
(void*(*)(void*))function, (__bridge void*)data) == 0);
} @finally {
pthread_attr_destroy(&pattr);
}
return ret;
}
bool
of_thread_join(of_thread_t thread)
{
void *ret;
|