summaryrefslogtreecommitdiff
path: root/Python/thread_wince.h
diff options
context:
space:
mode:
Diffstat (limited to 'Python/thread_wince.h')
-rw-r--r--Python/thread_wince.h136
1 files changed, 0 insertions, 136 deletions
diff --git a/Python/thread_wince.h b/Python/thread_wince.h
deleted file mode 100644
index 51ddc02f9a..0000000000
--- a/Python/thread_wince.h
+++ /dev/null
@@ -1,136 +0,0 @@
-
-/* This code implemented by Mark Hammond (MHammond@skippinet.com.au) */
-
-#include <windows.h>
-#include <limits.h>
-#include <pydebug.h>
-
-long PyThread_get_thread_ident(void);
-
-/*
- * Change all headers to pure ANSI as no one will use K&R style on an
- * NT
- */
-
-/*
- * Initialization of the C package, should not be needed.
- */
-static void PyThread__init_thread(void)
-{
-}
-
-/*
- * Thread support.
- */
-long PyThread_start_new_thread(void (*func)(void *), void *arg)
-{
- long rv;
- int success = -1;
-
- dprintf(("%ld: PyThread_start_new_thread called\n", PyThread_get_thread_ident()));
- if (!initialized)
- PyThread_init_thread();
-
- rv = _beginthread(func, 0, arg); /* use default stack size */
-
- if (rv != -1) {
- success = 0;
- dprintf(("%ld: PyThread_start_new_thread succeeded:\n", PyThread_get_thread_ident()));
- }
-
- return success;
-}
-
-/*
- * Return the thread Id instead of an handle. The Id is said to uniquely identify the
- * thread in the system
- */
-long PyThread_get_thread_ident(void)
-{
- if (!initialized)
- PyThread_init_thread();
-
- return GetCurrentThreadId();
-}
-
-void PyThread_exit_thread(void)
-{
- dprintf(("%ld: PyThread_exit_thread called\n", PyThread_get_thread_ident()));
- if (!initialized)
- exit(0);
- _endthread();
-}
-
-/*
- * Lock support. It has to be implemented using Mutexes, as
- * CE doesnt support semaphores. Therefore we use some hacks to
- * simulate the non reentrant requirements of Python locks
- */
-PyThread_type_lock PyThread_allocate_lock(void)
-{
- HANDLE aLock;
-
- dprintf(("PyThread_allocate_lock called\n"));
- if (!initialized)
- PyThread_init_thread();
-
- aLock = CreateEvent(NULL, /* Security attributes */
- 0, /* Manual-Reset */
- 1, /* Is initially signalled */
- NULL); /* Name of event */
-
- dprintf(("%ld: PyThread_allocate_lock() -> %p\n", PyThread_get_thread_ident(), aLock));
-
- return (PyThread_type_lock) aLock;
-}
-
-void PyThread_free_lock(PyThread_type_lock aLock)
-{
- dprintf(("%ld: PyThread_free_lock(%p) called\n", PyThread_get_thread_ident(),aLock));
-
- CloseHandle(aLock);
-}
-
-/*
- * Return 1 on success if the lock was acquired
- *
- * and 0 if the lock was not acquired. This means a 0 is returned
- * if the lock has already been acquired by this thread!
- */
-int PyThread_acquire_lock(PyThread_type_lock aLock, int waitflag)
-{
- int success = 1;
- DWORD waitResult;
-
- dprintf(("%ld: PyThread_acquire_lock(%p, %d) called\n", PyThread_get_thread_ident(),aLock, waitflag));
-
-#ifndef DEBUG
- waitResult = WaitForSingleObject(aLock, (waitflag ? INFINITE : 0));
-#else
- /* To aid in debugging, we regularly wake up. This allows us to
- break into the debugger */
- while (TRUE) {
- waitResult = WaitForSingleObject(aLock, waitflag ? 3000 : 0);
- if (waitflag==0 || (waitflag && waitResult == WAIT_OBJECT_0))
- break;
- }
-#endif
-
- if (waitResult != WAIT_OBJECT_0) {
- success = 0; /* We failed */
- }
-
- dprintf(("%ld: PyThread_acquire_lock(%p, %d) -> %d\n", PyThread_get_thread_ident(),aLock, waitflag, success));
-
- return success;
-}
-
-void PyThread_release_lock(PyThread_type_lock aLock)
-{
- dprintf(("%ld: PyThread_release_lock(%p) called\n", PyThread_get_thread_ident(),aLock));
-
- if (!SetEvent(aLock))
- dprintf(("%ld: Could not PyThread_release_lock(%p) error: %l\n", PyThread_get_thread_ident(), aLock, GetLastError()));
-}
-
-