⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changelog

📁 pthread source code,you can compile directly
💻
📖 第 1 页 / 共 5 页
字号:
2004-05-16  Panagiotis E. Hadjidoukas <peh at hpclab.ceid.upatras.gr>	* QueueUserAPCEx (separate contributed package): Provides preemptive	APC feature.	* pthread_cancel.c (pthread_cancel): Initial integration of	QueueUserAPCEx into pthreads-win32 to provide true pre-emptive	async cancelation of threads, including blocked threads.2004-05-06  Makoto Kato  <raven at oldskool.jp>	* pthread.h (DWORD_PTR): Define typedef for older MSVC.	* pthread_cancel.c (AMD64): Add architecture specific Context register.	* ptw32_getprocessors.c: Use correct types (DWORD_PTR) for mask	variables.2004-04-06  P. van Bruggen  <pietvb at newbridges.nl>	* ptw32_threadDestroy.c: Destroy threadLock mutex to	close a memory leak.2004-02-13  Gustav Hallberg  <gustav at virtutech.com>	* pthread_equal.c: Remove redundant equality logic.2003-12-10  Philippe Di Cristo  <philipped at voicebox.com>	* sem_timedwait.c (sem_timedwait): Fix timeout calculations.2003-10-20  Alexander Terekhov  <TEREKHOV at de.ibm.com>	* pthread_mutex_timedlock.c (ptw32_semwait): Move to individual module.	* ptw32_semwait.c: New module.	* pthread_cond_wait.c (ptw32_cond_wait_cleanup): Replace cancelable	sem_wait() call with non-cancelable ptw32_semwait() call.	* pthread.c (private.c): Re-order for inlining. GNU C warned that	function ptw32_semwait() was defined 'inline' after it was called.	* pthread_cond_signal.c (ptw32_cond_unblock): Likewise.	* pthread_delay_np.c: Disable Watcom warning with comment.	* *.c (process.h): Remove include from .c files. This is conditionally	included by the common project include files.2003-10-20  James Ewing  <james.ewing at sveasoft.com>	* ptw32_getprocessors.c: Some Win32 environments don't have	GetProcessAffinityMask(), so always return CPU count = 1 for them.	* config.h (NEED_PROCESSOR_AFFINITY_MASK): Define for WinCE.	2003-10-15  Ross Johnson  <ross at callisto.canberra.edu.au>	* Re-indented all .c files using default GNU style to remove assorted	editor ugliness (used GNU indent utility in default style).2003-10-15  Alex Blanco  <Alex.Blanco at motorola.com>	* sem_init.c (sem_init): Would call CreateSemaphore even if the sema	struct calloc failed; was not freeing calloced memory if either	CreateSemaphore or CreateEvent failed.2003-10-14  Ross Johnson  <ross at callisto.canberra.edu.au>	* pthread.h: Add Watcom compiler compatibility. Esssentially just add	the cdecl attribute to all exposed function prototypes so that Watcom	generates function call code compatible with non-Watcom built libraries.	By default, Watcom uses registers to pass function args if possible rather	than pushing to stack.	* semaphore.h: Likewise.	* sched.h: Likewise.	* pthread_cond_wait.c (ptw32_cond_wait_cleanup): Define with cdecl attribute	for Watcom compatibility. This routine is called via pthread_cleanup_push so	it had to match function arg definition.	* Wmakefile: New makefile for Watcom builds.2003-09-14  Ross Johnson  <rpj at callisto.canberra.edu.au>	* pthread_setschedparam.c (pthread_setschedparam): Attempt to map	all priority levels between max and min (as returned by	sched_get_priority_min/max) to reasonable Win32 priority levels - i.e.	levels between THREAD_PRIORITY_LOWEST/IDLE to THREAD_PRIORITY_LOWEST and	between THREAD_PRIORITY_HIGHEST/TIME_CRITICAL to THREAD_PRIORITY_HIGHEST	while others remain unchanged; record specified thread priority level	for return by pthread_getschedparam.	Note that, previously, specified levels not matching Win32 priority levels	would silently leave the current thread priority unaltered.	* pthread_getschedparam.c (pthread_getschedparam): Return the priority	level specified by the latest pthread_setschedparam or pthread_create rather	than the actual running thread priority as returned by GetThreadPriority - as	required by POSIX. I.e. temporary or adjusted actual priority levels are not	returned by this routine.	* pthread_create.c (pthread_create): For priority levels specified via	pthread attributes, attempt to map all priority levels between max and	min (as returned by sched_get_priority_min/max) to reasonable Win32	priority levels; record priority level given via attributes, or	inherited from parent thread, for later return by pthread_getschedparam.	* ptw32_new.c (ptw32_new): Initialise pthread_t_ sched_priority element.	* pthread_self.c (pthread_self): Set newly created implicit POSIX thread	sched_priority to Win32 thread's current actual priority. Temporarily	altered priorities can't be avoided in this case.	* implement.h (struct pthread_t_): Add new sched_priority element.2003-09-12  Ross Johnson  <rpj at callisto.canberra.edu.au>	* sched_get_priority_min.c (sched_get_priority_min): On error should return -1	with errno set.	* sched_get_priority_max.c (sched_get_priority_max): Likewise.2003-09-03  Ross Johnson  <rpj at callisto.canberra.edu.au>	* w32_cancelableWait.c (ptw32_cancelable_wait): Allow cancelation	of implicit POSIX threads as well.2003-09-02  Ross Johnson  <rpj at callisto.canberra.edu.au>	* pthread_win32_attach_detach_np.c (pthread_win32_thread_detach_np):	Add comment.	* pthread_exit.c (pthread_exit): Fix to recycle the POSIX thread handle in	addition to calling user TSD destructors. Move the implicit POSIX thread exit	handling to ptw32_throw to centralise the logic.	* ptw32_throw.c (ptw32_throw): Implicit POSIX threads have no point	to jump or throw to, so cleanup and exit the thread here in this case. For	processes using the C runtime, the exit code will be set to the POSIX	reason for the throw (i.e. PTHREAD_CANCEL or the value given to pthread_exit).	Note that pthread_exit() already had similar logic, which has been moved to	here.	* ptw32_threadDestroy.c (ptw32_threadDestroy): Don't close the Win32 handle	of implicit POSIX threads - expect this to be done by Win32?2003-09-01  Ross Johnson  <rpj at callisto.canberra.edu.au>	* pthread_self.c (pthread_self): The newly aquired pthread_t must be	assigned to the reuse stack, not freed, if the routine fails somehow.2003-08-13  Ross Johnson  <rpj at ise.canberra.edu.au>	* pthread_getschedparam.c (pthread_getschedparam): An invalid thread ID	parameter was returning an incorrect error value; now uses a more exhaustive	check for validity.	* pthread_setschedparam.c (pthread_setschedparam): Likewise.	* pthread_join.c (pthread_join): Now uses a more exhaustive	check for validity.	* pthread_detach.c (pthread_detach): Likewise.	* pthread_cancel.c (pthread_cancel): Likewise.	* ptw32_threadDestroy.c (ptw32_threadDestroy): pthread_t structs are	never freed - push them onto a stack for reuse.	* ptw32_new.c (ptw32_new): Check for reusable pthread_t before dynamically	allocating new memory for the struct.	* pthread_kill.c (pthread_kill): New file; new routine; takes only a zero	signal arg so that applications can check the thread arg for validity; checks	that the underlying Win32 thread HANDLE is valid.	* pthread.h (pthread_kill): Add prototype.	* ptw32_reuse.c (ptw32_threadReusePop): New file; new routine; pop a	pthread_t off the reuse stack. pthread_t_ structs that have been destroyed, i.e.	have exited detached or have been joined, are cleaned up and put onto a reuse	stack. Consequently, thread IDs are no longer freed once calloced. The library	will attempt to get a struct off this stack before asking the system to alloc	new memory when creating threads. The stack is guarded by a global mutex.	(ptw32_threadReusePush): New routine; push a pthread_t onto the reuse stack.	* implement.h (ptw32_threadReusePush): Add new prototype.	(ptw32_threadReusePop): Likewise.	(pthread_t): Add new element.	* ptw32_processTerminate.c (ptw32_processTerminate): Delete the thread	reuse lock; free all thread ID structs on the thread reuse stack.	* ptw32_processInitialize.c (ptw32_processInitialize): Initialise the	thread reuse lock.2003-07-19  Ross Johnson  <rpj at ise.canberra.edu.au>	* GNUmakefile: modified to work under MsysDTK environment.	* pthread_spin_lock.c (pthread_spin_lock): Check for NULL arg.	* pthread_spin_unlock.c (pthread_spin_unlock): Likewise.	* pthread_spin_trylock.c (pthread_spin_trylock): Likewise;	fix incorrect pointer value if lock is dynamically initialised by	this function.	* sem_init.c (sem_init): Initialise sem_t value to quell compiler warning.	* sem_destroy.c (sem_destroy): Likewise.	* ptw32_threadStart.c (non-MSVC code sections): Include <exception> rather	than old-style <new.h>; fix all std:: namespace entities such as	std::terminate_handler instances and associated methods.	* ptw32_callUserDestroyRoutines.c (non-MSVC code sections): Likewise.2003-06-24  Piet van Bruggen  <pietvb at newbridges.nl>	* pthread_spin_destroy.c (pthread_spin_destroy): Was not freeing the	spinlock struct.2003-06-22  Nicolas Barry  <boozai at yahoo.com>	* pthread_mutex_destroy.c (pthread_mutex_destroy): When called	with a recursive mutex that was locked by the current thread, the	function was failing with a success return code.2003-05-15  Steven Reddie  <Steven.Reddie at ca.com>	* pthread_win32_attach_detach_np.c (pthread_win32_process_detach_np):	NULLify ptw32_selfThreadKey after the thread is destroyed, otherwise	destructors calling pthreads routines might resurrect it again, creating	memory leaks. Call the underlying Win32 Tls routine directly rather than	pthread_setspecific().	(pthread_win32_thread_detach_np): Likewise.2003-05-14  Viv  <vcotirlea at hotmail.com>	* pthread.dsp: Change /MT compile flag to /MD.2003-03-04  Alexander Terekhov  <TEREKHOV at de.ibm.com>	* pthread_mutex_timedlock.c (pthread_mutex_timedlock): Fix failure to	set ownership of mutex on second grab after abstime timeout.	- bug reported by Robert Strycek <strycek at posam.sk>2002-12-17  Thomas Pfaff  <tpfaff at gmx.net>	* pthread_mutex_lock.c (ptw32_semwait): New static routine to provide	a non-cancelable sem_wait() function. This is consistent with the	way that pthread_mutex_timedlock.c does it.	(pthread_mutex_lock): Use ptw32_semwait() instead of sem_wait().2002-12-11  Thomas Pfaff  <tpfaff at gmx.net>	* pthread_mutex_trylock.c: Should return EBUSY rather than EDEADLK.	* pthread_mutex_destroy.c: Remove redundant ownership test (the	trylock call does this for us); do not destroy a recursively locked	mutex.2002-09-20  Michael Johnson  <michaelj at maine.rr.com>	* pthread_cond_destroy.c (pthread_cond_destroy): 	When two different threads exist, and one is attempting to	destroy a condition variable while the other is attempting to	initialize a condition variable that was created with	PTHREAD_COND_INITIALIZER, a deadlock can occur. Shrink	the ptw32_cond_list_lock critical section to fix it.2002-07-31  Ross Johnson  <rpj at special.ise.canberra.edu.au>	* ptw32_threadStart.c (ptw32_threadStart): Thread cancelLock	destruction moved to ptw32_threadDestroy().	* ptw32_threadDestroy.c (ptw32_threadDestroy):  Destroy	the thread's cancelLock. Moved here from ptw32_threadStart.c	to cleanup implicit threads as well.2002-07-30  Alexander Terekhov  <TEREKHOV at de.ibm.com>	* pthread_cond_wait.c (ptw32_cond_wait_cleanup): 	Remove code designed to avoid/prevent spurious wakeup	problems. It is believed that the sem_timedwait() call	is consuming a CV signal that it shouldn't and this is	breaking the avoidance logic.2002-07-30  Ross Johnson  <rpj at ise.canberra.edu.au>	* sem_timedwait.c (sem_timedwait): Tighten checks for	unreasonable abstime values - that would result in	unexpected timeout values.	* w32_CancelableWait.c (ptw32_cancelable_wait):	Tighten up return value checking and add comments.2002-06-08  Ross Johnson  <rpj at special.ise.canberra.edu.au>	* sem_getvalue.c (sem_getvalue): Now returns a value for the	NEED_SEM version (i.e. earlier versions of WinCE).2002-06-04  Rob Fanner  <rfanner at stonethree.com>	* sem_getvalue.c (sem_getvalue): The Johnson M. Hart	approach didn't work - we are forced to take an	intrusive approach. We try to decrement the sema	and then immediately release it again to get the	value. There is a small probability that this may	block other threads, but only momentarily.2002-06-03  Ross Johnson  <rpj at ise.canberra.edu.au>	* sem_init.c (sem_init): Initialise Win32 semaphores	to _POSIX_SEM_VALUE_MAX (which this implementation	defines in pthread.h) so that sem_getvalue() can use	the trick described in the comments in sem_getvalue().	* pthread.h (_POSIX_SEM_VALUE_MAX): Defined.	(_POSIX_SEM_NSEMS_MAX): Defined - not used but may be	useful for source code portability.2002-06-03  Rob Fanner  <rfanner at stonethree.com>	* sem_getvalue.c (sem_getvalue): Did not work on NT.	Use approach suggested by Johnson M. Hart in his book	"Win32 System Programming".2002-02-28  Ross Johnson  <rpj at setup1.ise.canberra.edu.au>	* errno.c: Compiler directive was incorrectly including code.	* pthread.h: Conditionally added some #defines from config.h	needed when not building the library. e.g. NEED_ERRNO, NEED_SEM.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -