summaryrefslogtreecommitdiffstats
path: root/Python/thread_solaris.h
diff options
context:
space:
mode:
Diffstat (limited to 'Python/thread_solaris.h')
-rw-r--r--Python/thread_solaris.h130
1 files changed, 0 insertions, 130 deletions
diff --git a/Python/thread_solaris.h b/Python/thread_solaris.h
deleted file mode 100644
index 1ce1cfc..0000000
--- a/Python/thread_solaris.h
+++ /dev/null
@@ -1,130 +0,0 @@
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <errno.h>
-#include </usr/include/thread.h>
-#undef _POSIX_THREADS
-
-
-/*
- * Initialization.
- */
-static void PyThread__init_thread(void)
-{
-}
-
-/*
- * Thread support.
- */
-struct func_arg {
- void (*func)(void *);
- void *arg;
-};
-
-static void *
-new_func(void *funcarg)
-{
- void (*func)(void *);
- void *arg;
-
- func = ((struct func_arg *) funcarg)->func;
- arg = ((struct func_arg *) funcarg)->arg;
- free(funcarg);
- (*func)(arg);
- return 0;
-}
-
-
-long
-PyThread_start_new_thread(void (*func)(void *), void *arg)
-{
- thread_t tid;
- struct func_arg *funcarg;
-
- dprintf(("PyThread_start_new_thread called\n"));
- if (!initialized)
- PyThread_init_thread();
- funcarg = (struct func_arg *) malloc(sizeof(struct func_arg));
- funcarg->func = func;
- funcarg->arg = arg;
- if (thr_create(0, 0, new_func, funcarg,
- THR_DETACHED | THR_NEW_LWP, &tid)) {
- perror("thr_create");
- free((void *) funcarg);
- return -1;
- }
- return tid;
-}
-
-long
-PyThread_get_thread_ident(void)
-{
- if (!initialized)
- PyThread_init_thread();
- return thr_self();
-}
-
-void
-PyThread_exit_thread(void)
-{
- dprintf(("PyThread_exit_thread called\n"));
- if (!initialized)
- exit(0);
- thr_exit(0);
-}
-
-/*
- * Lock support.
- */
-PyThread_type_lock
-PyThread_allocate_lock(void)
-{
- mutex_t *lock;
-
- dprintf(("PyThread_allocate_lock called\n"));
- if (!initialized)
- PyThread_init_thread();
-
- lock = (mutex_t *) malloc(sizeof(mutex_t));
- if (mutex_init(lock, USYNC_THREAD, 0)) {
- perror("mutex_init");
- free((void *) lock);
- lock = 0;
- }
- dprintf(("PyThread_allocate_lock() -> %p\n", lock));
- return (PyThread_type_lock) lock;
-}
-
-void
-PyThread_free_lock(PyThread_type_lock lock)
-{
- dprintf(("PyThread_free_lock(%p) called\n", lock));
- mutex_destroy((mutex_t *) lock);
- free((void *) lock);
-}
-
-int
-PyThread_acquire_lock(PyThread_type_lock lock, int waitflag)
-{
- int success;
-
- dprintf(("PyThread_acquire_lock(%p, %d) called\n", lock, waitflag));
- if (waitflag)
- success = mutex_lock((mutex_t *) lock);
- else
- success = mutex_trylock((mutex_t *) lock);
- if (success < 0)
- perror(waitflag ? "mutex_lock" : "mutex_trylock");
- else
- success = !success; /* solaris does it the other way round */
- dprintf(("PyThread_acquire_lock(%p, %d) -> %d\n", lock, waitflag, success));
- return success;
-}
-
-void
-PyThread_release_lock(PyThread_type_lock lock)
-{
- dprintf(("PyThread_release_lock(%p) called\n", lock));
- if (mutex_unlock((mutex_t *) lock))
- perror("mutex_unlock");
-}