[Python-checkins] python/dist/src/Python thread_os2.h,2.15,2.16
aimacintyre@users.sourceforge.net
aimacintyre@users.sourceforge.net
2002年12月04日 04:29:40 -0800
Update of /cvsroot/python/python/dist/src/Python
In directory sc8-pr-cvs1:/tmp/cvs-serv21877
Modified Files:
thread_os2.h
Log Message:
reformat for PEP-7 style conformance
Index: thread_os2.h
===================================================================
RCS file: /cvsroot/python/python/dist/src/Python/thread_os2.h,v
retrieving revision 2.15
retrieving revision 2.16
diff -C2 -d -r2.15 -r2.16
*** thread_os2.h 4 Dec 2002 12:27:06 -0000 2.15
--- thread_os2.h 4 Dec 2002 12:29:37 -0000 2.16
***************
*** 29,44 ****
PyThread_start_new_thread(void (*func)(void *), void *arg)
{
! int aThread;
! int success = 0;
! aThread = _beginthread(func,NULL,65536,arg);
! if( aThread == -1 ) {
! success = -1;
! fprintf(stderr,"aThread failed == %d",aThread);
! dprintf(("_beginthread failed. return %ld\n", errno));
! }
! return success;
}
--- 29,44 ----
PyThread_start_new_thread(void (*func)(void *), void *arg)
{
! int aThread;
! int success = 0;
! aThread = _beginthread(func,NULL,65536,arg);
! if (aThread == -1) {
! success = -1;
! fprintf(stderr, "aThread failed == %d", aThread);
! dprintf(("_beginthread failed. return %ld\n", errno));
! }
! return success;
}
***************
*** 47,62 ****
{
#if !defined(PYCC_GCC)
! PPIB pib;
! PTIB tib;
#endif
! if (!initialized)
! PyThread_init_thread();
!
#if defined(PYCC_GCC)
! return _gettid();
#else
! DosGetInfoBlocks(&tib,&pib);
! return tib->tib_ptib2->tib2_ultid;
#endif
}
--- 47,62 ----
{
#if !defined(PYCC_GCC)
! PPIB pib;
! PTIB tib;
#endif
! if (!initialized)
! PyThread_init_thread();
!
#if defined(PYCC_GCC)
! return _gettid();
#else
! DosGetInfoBlocks(&tib, &pib);
! return tib->tib_ptib2->tib2_ultid;
#endif
}
***************
*** 65,75 ****
do_PyThread_exit_thread(int no_cleanup)
{
! dprintf(("%ld: PyThread_exit_thread called\n", PyThread_get_thread_ident()));
! if (!initialized)
! if (no_cleanup)
! _exit(0);
! else
! exit(0);
! _endthread();
}
--- 65,76 ----
do_PyThread_exit_thread(int no_cleanup)
{
! dprintf(("%ld: PyThread_exit_thread called\n",
! PyThread_get_thread_ident()));
! if (!initialized)
! if (no_cleanup)
! _exit(0);
! else
! exit(0);
! _endthread();
}
***************
*** 77,81 ****
PyThread_exit_thread(void)
{
! do_PyThread_exit_thread(0);
}
--- 78,82 ----
PyThread_exit_thread(void)
{
! do_PyThread_exit_thread(0);
}
***************
*** 83,87 ****
PyThread__exit_thread(void)
{
! do_PyThread_exit_thread(1);
}
--- 84,88 ----
PyThread__exit_thread(void)
{
! do_PyThread_exit_thread(1);
}
***************
*** 90,99 ****
do_PyThread_exit_prog(int status, int no_cleanup)
{
! dprintf(("PyThread_exit_prog(%d) called\n", status));
! if (!initialized)
! if (no_cleanup)
! _exit(status);
! else
! exit(status);
}
--- 91,100 ----
do_PyThread_exit_prog(int status, int no_cleanup)
{
! dprintf(("PyThread_exit_prog(%d) called\n", status));
! if (!initialized)
! if (no_cleanup)
! _exit(status);
! else
! exit(status);
}
***************
*** 101,105 ****
PyThread_exit_prog(int status)
{
! do_PyThread_exit_prog(status, 0);
}
--- 102,106 ----
PyThread_exit_prog(int status)
{
! do_PyThread_exit_prog(status, 0);
}
***************
*** 107,111 ****
PyThread__exit_prog(int status)
{
! do_PyThread_exit_prog(status, 1);
}
#endif /* NO_EXIT_PROG */
--- 108,112 ----
PyThread__exit_prog(int status)
{
! do_PyThread_exit_prog(status, 1);
}
#endif /* NO_EXIT_PROG */
***************
*** 118,123 ****
typedef struct os2_lock_t {
! int is_set;
! HEV changed;
} *type_os2_lock;
--- 119,124 ----
typedef struct os2_lock_t {
! int is_set;
! HEV changed;
} *type_os2_lock;
***************
*** 126,157 ****
{
#if defined(PYCC_GCC)
! _fmutex *sem = malloc(sizeof(_fmutex));
! if (!initialized)
! PyThread_init_thread();
! dprintf(("%ld: PyThread_allocate_lock() -> %lx\n",
! PyThread_get_thread_ident(),
! (long)sem));
! if (_fmutex_create(sem, 0)) {
! free(sem);
! sem = NULL;
! }
! return (PyThread_type_lock) sem;
#else
! APIRET rc;
! type_os2_lock lock = (type_os2_lock)malloc(sizeof(struct os2_lock_t));
! dprintf(("PyThread_allocate_lock called\n"));
! if (!initialized)
! PyThread_init_thread();
! lock->is_set = 0;
! DosCreateEventSem(NULL, &lock->changed, 0, 0);
! dprintf(("%ld: PyThread_allocate_lock() -> %p\n",
! PyThread_get_thread_ident(),
! lock->changed));
! return (PyThread_type_lock) lock;
#endif
}
--- 127,158 ----
{
#if defined(PYCC_GCC)
! _fmutex *sem = malloc(sizeof(_fmutex));
! if (!initialized)
! PyThread_init_thread();
! dprintf(("%ld: PyThread_allocate_lock() -> %lx\n",
! PyThread_get_thread_ident(),
! (long)sem));
! if (_fmutex_create(sem, 0)) {
! free(sem);
! sem = NULL;
! }
! return (PyThread_type_lock)sem;
#else
! APIRET rc;
! type_os2_lock lock = (type_os2_lock)malloc(sizeof(struct os2_lock_t));
! dprintf(("PyThread_allocate_lock called\n"));
! if (!initialized)
! PyThread_init_thread();
! lock->is_set = 0;
! DosCreateEventSem(NULL, &lock->changed, 0, 0);
! dprintf(("%ld: PyThread_allocate_lock() -> %p\n",
! PyThread_get_thread_ident(),
! lock->changed));
! return (PyThread_type_lock)lock;
#endif
}
***************
*** 161,177 ****
{
#if !defined(PYCC_GCC)
! type_os2_lock lock = (type_os2_lock)aLock;
#endif
! dprintf(("%ld: PyThread_free_lock(%p) called\n", PyThread_get_thread_ident(),aLock));
#if defined(PYCC_GCC)
! if (aLock) {
! _fmutex_close((_fmutex *)aLock);
! free((_fmutex *)aLock);
! }
#else
! DosCloseEventSem(lock->changed);
! free(aLock);
#endif
}
--- 162,179 ----
{
#if !defined(PYCC_GCC)
! type_os2_lock lock = (type_os2_lock)aLock;
#endif
! dprintf(("%ld: PyThread_free_lock(%p) called\n",
! PyThread_get_thread_ident(),aLock));
#if defined(PYCC_GCC)
! if (aLock) {
! _fmutex_close((_fmutex *)aLock);
! free((_fmutex *)aLock);
! }
#else
! DosCloseEventSem(lock->changed);
! free(aLock);
#endif
}
***************
*** 186,230 ****
{
#if !defined(PYCC_GCC)
! int done = 0;
! ULONG count;
! PID pid = 0;
! TID tid = 0;
! type_os2_lock lock = (type_os2_lock)aLock;
#endif
! dprintf(("%ld: PyThread_acquire_lock(%p, %d) called\n", PyThread_get_thread_ident(),
! aLock, waitflag));
#if defined(PYCC_GCC)
! /* always successful if the lock doesn't exist */
! if (aLock && _fmutex_request((_fmutex *)aLock, waitflag ? 0 : _FMR_NOWAIT))
! return 0;
#else
! while (!done) {
! /* if the lock is currently set, we have to wait for the state to change */
! if (lock->is_set) {
! if (!waitflag)
! return 0;
! DosWaitEventSem(lock->changed, SEM_INDEFINITE_WAIT);
! }
!
! /*
! * enter a critical section and try to get the semaphore. If
! * it is still locked, we will try again.
! */
! if (DosEnterCritSec())
! return 0;
! if (!lock->is_set) {
! lock->is_set = 1;
! DosResetEventSem(lock->changed, &count);
! done = 1;
! }
! DosExitCritSec();
! }
#endif
! return 1;
}
--- 188,236 ----
{
#if !defined(PYCC_GCC)
! int done = 0;
! ULONG count;
! PID pid = 0;
! TID tid = 0;
! type_os2_lock lock = (type_os2_lock)aLock;
#endif
! dprintf(("%ld: PyThread_acquire_lock(%p, %d) called\n",
! PyThread_get_thread_ident(),
! aLock,
! waitflag));
#if defined(PYCC_GCC)
! /* always successful if the lock doesn't exist */
! if (aLock &&
! _fmutex_request((_fmutex *)aLock, waitflag ? 0 : _FMR_NOWAIT))
! return 0;
#else
! while (!done) {
! /* if the lock is currently set, we have to wait for
! * the state to change
! */
! if (lock->is_set) {
! if (!waitflag)
! return 0;
! DosWaitEventSem(lock->changed, SEM_INDEFINITE_WAIT);
! }
! /* enter a critical section and try to get the semaphore. If
! * it is still locked, we will try again.
! */
! if (DosEnterCritSec())
! return 0;
! if (!lock->is_set) {
! lock->is_set = 1;
! DosResetEventSem(lock->changed, &count);
! done = 1;
! }
!
! DosExitCritSec();
! }
#endif
! return 1;
}
***************
*** 232,261 ****
{
#if !defined(PYCC_GCC)
! type_os2_lock lock = (type_os2_lock)aLock;
#endif
! dprintf(("%ld: PyThread_release_lock(%p) called\n", PyThread_get_thread_ident(),aLock));
#if defined(PYCC_GCC)
! if (aLock)
! _fmutex_release((_fmutex *)aLock);
#else
! if (!lock->is_set) {
! dprintf(("%ld: Could not PyThread_release_lock(%p) error: %l\n",
! PyThread_get_thread_ident(), aLock, GetLastError()));
! return;
! }
! if (DosEnterCritSec()) {
! dprintf(("%ld: Could not PyThread_release_lock(%p) error: %l\n",
! PyThread_get_thread_ident(), aLock, GetLastError()));
! return;
! }
!
! lock->is_set = 0;
! DosPostEventSem(lock->changed);
!
! DosExitCritSec();
#endif
}
--- 238,272 ----
{
#if !defined(PYCC_GCC)
! type_os2_lock lock = (type_os2_lock)aLock;
#endif
! dprintf(("%ld: PyThread_release_lock(%p) called\n",
! PyThread_get_thread_ident(),
! aLock));
#if defined(PYCC_GCC)
! if (aLock)
! _fmutex_release((_fmutex *)aLock);
#else
! if (!lock->is_set) {
! dprintf(("%ld: Could not PyThread_release_lock(%p) error: %l\n",
! PyThread_get_thread_ident(),
! aLock,
! GetLastError()));
! return;
! }
!
! if (DosEnterCritSec()) {
! dprintf(("%ld: Could not PyThread_release_lock(%p) error: %l\n",
! PyThread_get_thread_ident(),
! aLock,
! GetLastError()));
! return;
! }
+ lock->is_set = 0;
+ DosPostEventSem(lock->changed);
! DosExitCritSec();
#endif
}