Changeset 391 for python/trunk/Python/thread_wince.h
- Timestamp:
- Mar 19, 2014, 11:31:01 PM (11 years ago)
- Location:
- python/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
python/trunk
-
Property svn:mergeinfo
set to
/python/vendor/Python-2.7.6 merged eligible /python/vendor/current merged eligible
-
Property svn:mergeinfo
set to
-
python/trunk/Python/thread_wince.h
r2 r391 25 25 long PyThread_start_new_thread(void (*func)(void *), void *arg) 26 26 { 27 28 27 long rv; 28 int success = -1; 29 29 30 31 32 30 dprintf(("%ld: PyThread_start_new_thread called\n", PyThread_get_thread_ident())); 31 if (!initialized) 32 PyThread_init_thread(); 33 33 34 rv = _beginthread(func, 0, arg); /* use default stack size */ 35 36 if (rv != -1) { 37 success = 0; 38 dprintf(("%ld: PyThread_start_new_thread succeeded:\n", PyThread_get_thread_ident())); 39 } 34 rv = _beginthread(func, 0, arg); /* use default stack size */ 40 35 41 return success; 36 if (rv != -1) { 37 success = 0; 38 dprintf(("%ld: PyThread_start_new_thread succeeded:\n", PyThread_get_thread_ident())); 39 } 40 41 return success; 42 42 } 43 43 … … 48 48 long PyThread_get_thread_ident(void) 49 49 { 50 if (!initialized) 51 PyThread_init_thread(); 52 53 return GetCurrentThreadId(); 54 } 50 if (!initialized) 51 PyThread_init_thread(); 55 52 56 static void do_PyThread_exit_thread(int no_cleanup) 57 { 58 dprintf(("%ld: do_PyThread_exit_thread called\n", PyThread_get_thread_ident())); 59 if (!initialized) 60 if (no_cleanup) 61 exit(0); /* XXX - was _exit()!! */ 62 else 63 exit(0); 64 _endthread(); 53 return GetCurrentThreadId(); 65 54 } 66 55 67 56 void PyThread_exit_thread(void) 68 57 { 69 do_PyThread_exit_thread(0); 58 dprintf(("%ld: PyThread_exit_thread called\n", PyThread_get_thread_ident())); 59 if (!initialized) 60 exit(0); 61 _endthread(); 70 62 } 71 72 void PyThread__exit_thread(void)73 {74 do_PyThread_exit_thread(1);75 }76 77 #ifndef NO_EXIT_PROG78 static void do_PyThread_exit_prog(int status, int no_cleanup)79 {80 dprintf(("PyThread_exit_prog(%d) called\n", status));81 if (!initialized)82 if (no_cleanup)83 _exit(status);84 else85 exit(status);86 }87 88 void PyThread_exit_prog(int status)89 {90 do_PyThread_exit_prog(status, 0);91 }92 93 void PyThread__exit_prog(int status)94 {95 do_PyThread_exit_prog(status, 1);96 }97 #endif /* NO_EXIT_PROG */98 63 99 64 /* … … 108 73 dprintf(("PyThread_allocate_lock called\n")); 109 74 if (!initialized) 110 75 PyThread_init_thread(); 111 76 112 77 aLock = CreateEvent(NULL, /* Security attributes */ 113 114 115 78 0, /* Manual-Reset */ 79 1, /* Is initially signalled */ 80 NULL); /* Name of event */ 116 81 117 82 dprintf(("%ld: PyThread_allocate_lock() -> %p\n", PyThread_get_thread_ident(), aLock)); … … 143 108 waitResult = WaitForSingleObject(aLock, (waitflag ? INFINITE : 0)); 144 109 #else 145 146 147 148 149 150 151 110 /* To aid in debugging, we regularly wake up. This allows us to 111 break into the debugger */ 112 while (TRUE) { 113 waitResult = WaitForSingleObject(aLock, waitflag ? 3000 : 0); 114 if (waitflag==0 || (waitflag && waitResult == WAIT_OBJECT_0)) 115 break; 116 } 152 117 #endif 153 118 154 119 if (waitResult != WAIT_OBJECT_0) { 155 120 success = 0; /* We failed */ 156 121 } 157 122 158 123 dprintf(("%ld: PyThread_acquire_lock(%p, %d) -> %d\n", PyThread_get_thread_ident(),aLock, waitflag, success)); 159 124 160 125 return success; 161 126 } 162 127 … … 166 131 167 132 if (!SetEvent(aLock)) 168 133 dprintf(("%ld: Could not PyThread_release_lock(%p) error: %l\n", PyThread_get_thread_ident(), aLock, GetLastError())); 169 134 } 170 135
Note:
See TracChangeset
for help on using the changeset viewer.