diff options
Diffstat (limited to 'contrib/libobjc/thr-mach.c')
-rw-r--r-- | contrib/libobjc/thr-mach.c | 117 |
1 files changed, 59 insertions, 58 deletions
diff --git a/contrib/libobjc/thr-mach.c b/contrib/libobjc/thr-mach.c index 44af0c1..e954607 100644 --- a/contrib/libobjc/thr-mach.c +++ b/contrib/libobjc/thr-mach.c @@ -1,5 +1,5 @@ /* GNU Objective C Runtime Thread Implementation - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) Modified for Mach threads by Bill Bumgarner <bbum@friday.com> Condition functions added by Mircea Oancea <mircea@first.elcom.pub.ro> @@ -37,7 +37,8 @@ Boston, MA 02111-1307, USA. */ maximum priority downward only-- cannot be raised without superuser privileges. Once lowered, it cannot be raised. */ -static int __mach_get_max_thread_priority(cthread_t t, int *base) +static int +__mach_get_max_thread_priority (cthread_t t, int *base) { thread_t threadP; kern_return_t error; @@ -47,10 +48,10 @@ static int __mach_get_max_thread_priority(cthread_t t, int *base) if (t == NULL) return -1; - threadP = cthread_thread(t); /* get thread underlying */ + threadP = cthread_thread (t); /* get thread underlying */ - error=thread_info(threadP, THREAD_SCHED_INFO, - (thread_info_t)&info, &info_count); + error = thread_info (threadP, THREAD_SCHED_INFO, + (thread_info_t) &info, &info_count); if (error != KERN_SUCCESS) return -1; @@ -65,14 +66,14 @@ static int __mach_get_max_thread_priority(cthread_t t, int *base) /* Initialize the threads subsystem. */ int -__objc_init_thread_system(void) +__objc_init_thread_system (void) { return 0; } /* Close the threads subsystem. */ int -__objc_close_thread_system(void) +__objc_close_thread_system (void) { return 0; } @@ -81,19 +82,19 @@ __objc_close_thread_system(void) /* Create a new thread of execution. */ objc_thread_t -__objc_thread_detach(void (*func)(void *arg), void *arg) +__objc_thread_detach (void (*func) (void *arg), void *arg) { objc_thread_t thread_id; cthread_t new_thread_handle; /* create thread */ - new_thread_handle = cthread_fork((cthread_fn_t)func, arg); + new_thread_handle = cthread_fork ((cthread_fn_t) func, arg); - if(new_thread_handle) + if (new_thread_handle) { /* this is not terribly portable */ - thread_id = *(objc_thread_t *)&new_thread_handle; - cthread_detach(new_thread_handle); + thread_id = *(objc_thread_t *) &new_thread_handle; + cthread_detach (new_thread_handle); } else thread_id = NULL; @@ -103,11 +104,11 @@ __objc_thread_detach(void (*func)(void *arg), void *arg) /* Set the current thread's priority. */ int -__objc_thread_set_priority(int priority) +__objc_thread_set_priority (int priority) { - objc_thread_t *t = objc_thread_id(); + objc_thread_t *t = objc_thread_id (); cthread_t cT = (cthread_t) t; - int maxPriority = __mach_get_max_thread_priority(cT, NULL); + int maxPriority = __mach_get_max_thread_priority (cT, NULL); int sys_priority = 0; if (maxPriority == -1) @@ -132,7 +133,7 @@ __objc_thread_set_priority(int priority) return -1; /* Change the priority */ - if (cthread_priority(cT, sys_priority, 0) == KERN_SUCCESS) + if (cthread_priority (cT, sys_priority, 0) == KERN_SUCCESS) return 0; else return -1; @@ -140,19 +141,19 @@ __objc_thread_set_priority(int priority) /* Return the current thread's priority. */ int -__objc_thread_get_priority(void) +__objc_thread_get_priority (void) { - objc_thread_t *t = objc_thread_id(); - cthread_t cT = (cthread_t) t; /* see objc_thread_id() */ + objc_thread_t *t = objc_thread_id (); + cthread_t cT = (cthread_t) t; /* see objc_thread_id () */ int basePriority; int maxPriority; int sys_priority = 0; int interactiveT, backgroundT, lowT; /* thresholds */ - maxPriority = __mach_get_max_thread_priority(cT, &basePriority); + maxPriority = __mach_get_max_thread_priority (cT, &basePriority); - if(maxPriority == -1) + if (maxPriority == -1) return -1; if (basePriority > ( (maxPriority * 2) / 3)) @@ -166,17 +167,17 @@ __objc_thread_get_priority(void) /* Yield our process time to another thread. */ void -__objc_thread_yield(void) +__objc_thread_yield (void) { - cthread_yield(); + cthread_yield (); } /* Terminate the current thread. */ int -__objc_thread_exit(void) +__objc_thread_exit (void) { /* exit the thread */ - cthread_exit(&__objc_thread_exit_status); + cthread_exit (&__objc_thread_exit_status); /* Failed if we reached here */ return -1; @@ -184,42 +185,42 @@ __objc_thread_exit(void) /* Returns an integer value which uniquely describes a thread. */ objc_thread_t -__objc_thread_id(void) +__objc_thread_id (void) { - cthread_t self = cthread_self(); + cthread_t self = cthread_self (); - return *(objc_thread_t *)&self; + return *(objc_thread_t *) &self; } /* Sets the thread's local storage pointer. */ int -__objc_thread_set_data(void *value) +__objc_thread_set_data (void *value) { - cthread_set_data(cthread_self(), (any_t) value); + cthread_set_data (cthread_self (), (any_t) value); return 0; } /* Returns the thread's local storage pointer. */ void * -__objc_thread_get_data(void) +__objc_thread_get_data (void) { - return (void *) cthread_data(cthread_self()); + return (void *) cthread_data (cthread_self ()); } /* Backend mutex functions */ /* Allocate a mutex. */ int -__objc_mutex_allocate(objc_mutex_t mutex) +__objc_mutex_allocate (objc_mutex_t mutex) { int err = 0; - mutex->backend = objc_malloc(sizeof(struct mutex)); + mutex->backend = objc_malloc (sizeof (struct mutex)); - err = mutex_init((mutex_t)(mutex->backend)); + err = mutex_init ((mutex_t) (mutex->backend)); if (err != 0) { - objc_free(mutex->backend); + objc_free (mutex->backend); return -1; } else @@ -228,28 +229,28 @@ __objc_mutex_allocate(objc_mutex_t mutex) /* Deallocate a mutex. */ int -__objc_mutex_deallocate(objc_mutex_t mutex) +__objc_mutex_deallocate (objc_mutex_t mutex) { - mutex_clear((mutex_t)(mutex->backend)); + mutex_clear ((mutex_t) (mutex->backend)); - objc_free(mutex->backend); + objc_free (mutex->backend); mutex->backend = NULL; return 0; } /* Grab a lock on a mutex. */ int -__objc_mutex_lock(objc_mutex_t mutex) +__objc_mutex_lock (objc_mutex_t mutex) { - mutex_lock((mutex_t)(mutex->backend)); + mutex_lock ((mutex_t) (mutex->backend)); return 0; } /* Try to grab a lock on a mutex. */ int -__objc_mutex_trylock(objc_mutex_t mutex) +__objc_mutex_trylock (objc_mutex_t mutex) { - if (mutex_try_lock((mutex_t)(mutex->backend)) == 0) + if (mutex_try_lock ((mutex_t) (mutex->backend)) == 0) return -1; else return 0; @@ -257,9 +258,9 @@ __objc_mutex_trylock(objc_mutex_t mutex) /* Unlock the mutex */ int -__objc_mutex_unlock(objc_mutex_t mutex) +__objc_mutex_unlock (objc_mutex_t mutex) { - mutex_unlock((mutex_t)(mutex->backend)); + mutex_unlock ((mutex_t) (mutex->backend)); return 0; } @@ -267,45 +268,45 @@ __objc_mutex_unlock(objc_mutex_t mutex) /* Allocate a condition. */ int -__objc_condition_allocate(objc_condition_t condition) +__objc_condition_allocate (objc_condition_t condition) { - condition->backend = objc_malloc(sizeof(struct condition)); - condition_init((condition_t)(condition->backend)); + condition->backend = objc_malloc (sizeof (struct condition)); + condition_init ((condition_t) (condition->backend)); return 0; } /* Deallocate a condition. */ int -__objc_condition_deallocate(objc_condition_t condition) +__objc_condition_deallocate (objc_condition_t condition) { - condition_clear((condition_t)(condition->backend)); - objc_free(condition->backend); + condition_clear ((condition_t) (condition->backend)); + objc_free (condition->backend); condition->backend = NULL; return 0; } /* Wait on the condition */ int -__objc_condition_wait(objc_condition_t condition, objc_mutex_t mutex) +__objc_condition_wait (objc_condition_t condition, objc_mutex_t mutex) { - condition_wait((condition_t)(condition->backend), - (mutex_t)(mutex->backend)); + condition_wait ((condition_t) (condition->backend), + (mutex_t) (mutex->backend)); return 0; } /* Wake up all threads waiting on this condition. */ int -__objc_condition_broadcast(objc_condition_t condition) +__objc_condition_broadcast (objc_condition_t condition) { - condition_broadcast((condition_t)(condition->backend)); + condition_broadcast ((condition_t) (condition->backend)); return 0; } /* Wake up one thread waiting on this condition. */ int -__objc_condition_signal(objc_condition_t condition) +__objc_condition_signal (objc_condition_t condition) { - condition_signal((condition_t)(condition->backend)); + condition_signal ((condition_t) (condition->backend)); return 0; } |