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

📄 changelog

📁 Parallel Processing, Important document for learning about high-performance computing.
💻
📖 第 1 页 / 共 5 页
字号:
	* sem_close.c: Separated routine from semaphore.c.
	* ptw32_decrease_semaphore.c: Likewise.
	* sem_destroy.c: Likewise.
	* sem_getvalue.c: Likewise.
	* ptw32_increase_semaphore.c: Likewise.
	* sem_init.c: Likewise.
	* sem_open.c: Likewise.
	* sem_post.c: Likewise.
	* sem_post_multiple.c: Likewise.
	* sem_timedwait.c: Likewise.
	* sem_trywait.c: Likewise.
	* sem_unlink.c: Likewise.
	* sem_wait.c: Likewise.

2002-02-04  Ross Johnson  <rpj at setup1.ise.canberra.edu.au>

	The following extends the idea above to the rest of pthreads-win32 - rpj
	
	* attr.c: All routines are now in separate compilation units;
	This file is used to congregate the separate modules for
	potential inline optimisation and backward build compatibility.
	* pthread_attr_destroy.c: Separated routine from attr.c.
	* pthread_attr_getdetachstate.c: Likewise.
	* pthread_attr_getscope.c: Likewise.
	* pthread_attr_getstackaddr.c: Likewise.
	* pthread_attr_getstacksize.c: Likewise.
	* pthread_attr_init.c: Likewise.
	* pthread_attr_is_attr.c: Likewise.
	* pthread_attr_setdetachstate.c: Likewise.
	* pthread_attr_setscope.c: Likewise.
	* pthread_attr_setstackaddr.c: Likewise.
	* pthread_attr_setstacksize.c: Likewise.

	* pthread.c: Agregation of agregate modules for super-inlineability.

2002-02-02  Ross Johnson  <rpj at setup1.ise.canberra.edu.au>

	* cancel.c: Rearranged some code and introduced checks
	to disable cancelation at the start of a thread's cancelation
	run to prevent double cancelation. The main problem
	arises if a thread is canceling and then receives a subsequent
	async cancel request.
	* private.c: Likewise.
	* condvar.c: Place pragmas around cleanup_push/pop to turn
	off inline optimisation (/Obn where n>0 - MSVC only). Various
	optimisation switches in MSVC turn this on, which interferes with
	the way that cleanup handlers are run in C++ EH and SEH
	code. Application code compiled with inline optimisation must
	also wrap cleanup_push/pop blocks with the pragmas, e.g.
	  #pragma inline_depth(0)
	  pthread_cleanup_push(...)
	    ...
	  pthread_cleanup_pop(...)
	  #pragma inline_depth(8)
	* rwlock.c: Likewise.
	* mutex.c: Remove attempts to inline some functions.
	* signal.c: Modify misleading comment.

2002-02-01  Ross Johnson  <rpj at setup1.ise.canberra.edu.au>

	* semaphore.c (sem_trywait): Fix missing errno return
	for systems that define NEED_SEM (e.g. early WinCE).
	* mutex.c (pthread_mutex_timedlock): Return ENOTSUP
	for systems that define NEED_SEM since they don't
	have sem_trywait().

2002-01-27  Ross Johnson  <rpj at special.ise.canberra.edu.au>

	* mutex.c (pthread_mutex_timedlock): New function suggested by
	Alexander Terekhov. The logic required to implement this
	properly came from Alexander, with some collaboration
	with Thomas Pfaff.
	(pthread_mutex_unlock): Wrap the waiters check and sema
	post in a critical section to prevent a race with
	pthread_mutex_timedlock.
	(ptw32_timed_semwait): New function;
	returns a special result if the absolute timeout parameter
	represents a time already passed when called; used by
	pthread_mutex_timedwait(). Have deliberately not reused
	the name "ptw32_sem_timedwait" because they are not the same
	routine.
	* condvar.c (ptw32_cond_timedwait): Use the new sem_timedwait()
	instead of ptw32_sem_timedwait(), which now has a different
	function. See previous.
	* implement.h: Remove prototype for ptw32_sem_timedwait.
	See next.
	(pthread_mutex_t_): Add critical section element for access
	to lock_idx during mutex post-timeout processing.
	* semaphore.h (sem_timedwait): See next.
	* semaphore.c (sem_timedwait): See next.
	* private.c (ptw32_sem_timedwait): Move to semaphore.c
	and rename as sem_timedwait().

2002-01-18  Ross Johnson  <rpj at special.ise.canberra.edu.au>

	* sync.c (pthread_join): Was getting the exit code from the
	calling thread rather than the joined thread if
	defined(__MINGW32__) && !defined(__MSVCRT__).

2002-01-15  Ross Johnson  <rpj at special.ise.canberra.edu.au>

	* pthread.h: Unless the build explicitly defines __CLEANUP_SEH,
	__CLEANUP_CXX, or __CLEANUP_C, then the build defaults to
	__CLEANUP_C style cleanup. This style uses setjmp/longjmp
	in the cancelation and thread exit implementations and therefore
	won't do stack unwinding if linked to applications that have it
	(e.g. C++ apps). This is currently consistent with most/all
	commercial Unix POSIX threads implementations.

	* spin.c (pthread_spin_init): Edit renamed function call.
	* nonportable.c (pthread_num_processors_np): New.
	(pthread_getprocessors_np): Renamed to ptw32_getprocessors
	and moved to private.c.
	* private.c (pthread_getprocessors): Moved here from
	nonportable.c.
	* pthread.def (pthread_getprocessors_np): Removed
	from export list.

	* rwlock.c (pthread_rwlockattr_init): New.
	(pthread_rwlockattr_destroy): New.
	(pthread_rwlockattr_getpshared): New.
	(pthread_rwlockattr_setpshared): New.

2002-01-14  Ross Johnson  <rpj at special.ise.canberra.edu.au>

	* attr.c (pthread_attr_setscope): Fix struct pointer
	indirection error introduced 2002-01-04.
	(pthread_attr_getscope): Likewise.

2002-01-12  Ross Johnson  <rpj at special.ise.canberra.edu.au>

	* pthread.dsp (SOURCE): Add missing source files.

2002-01-08  Ross Johnson  <rpj at setup1.ise.canberra.edu.au>

	* mutex.c (pthread_mutex_trylock): use
	ptw32_interlocked_compare_exchange function pointer
	rather than ptw32_InterlockedCompareExchange() directly
	to retain portability to non-iX86 processors,
	e.g. WinCE etc. The pointer will point to the native
	OS version of InterlockedCompareExchange() if the
	OS supports it (see ChangeLog entry of 2001-10-17).

2002-01-07  Thomas Pfaff <tpfaff at gmx.net>, Alexander Terekhov <TEREKHOV at de.ibm.com>

	* mutex.c (pthread_mutex_init): Remove critical
	section calls.
	(pthread_mutex_destroy): Likewise.
	(pthread_mutex_unlock): Likewise.
	(pthread_mutex_trylock): Likewise; uses
	ptw32_InterlockedCompareExchange() to avoid need for
	critical section; library is no longer i386 compatible;
	recursive mutexes now increment the lock count rather
	than return EBUSY; errorcheck mutexes return EDEADLCK
	rather than EBUSY. This behaviour is consistent with the
	Solaris pthreads implementation.
	* implement.h (pthread_mutex_t_): Remove critical
	section element - no longer needed.
	

2002-01-04  Ross Johnson  <rpj at setup1.ise.canberra.edu.au>

	* attr.c (pthread_attr_setscope): Add more error
	checking and actually store the scope value even
	though it's not really necessary.
	(pthread_attr_getscope): Return stored value.
	* implement.h (pthread_attr_t_): Add new scope element.
	* ANNOUNCE: Fix out of date comment next to
	pthread_attr_setscope in conformance section.

2001-12-21  Alexander Terekhov <TEREKHOV at de.ibm.com>

	* mutex.c (pthread_mutex_lock): Decrementing lock_idx was
	not thread-safe.
	(pthread_mutex_trylock): Likewise.

2001-10-26  prionx@juno.com

	* semaphore.c (sem_init): Fix typo and missing bracket
	in conditionally compiled code. Only older versions of
	WinCE require this code, hence it doesn't normally get
	tested; somehow when sem_t reverted to an opaque struct
	the calloc NULL check was left in the conditionally included
	section.
	(sem_destroy): Likewise, the calloced sem_t wasn't being freed.

2001-10-25  Ross Johnson  <rpj at setup1.ise.canberra.edu.au>

	* GNUmakefile (libwsock32): Add to linker flags for
	WSAGetLastError() and WSASetLastError().
	* Makefile (wsock32.lib): Likewise.
	* create.c: Minor mostly inert changes.
	* implement.h (PTW32_MAX): Move into here and renamed
	from sched.h.
	(PTW32_MIN): Likewise.
	* GNUmakefile (TEST_ICE): Define if testing internal
	implementation of InterlockedCompareExchange.
	* Makefile (TEST_ICE): Likewise.
	* private.c (TEST_ICE): Likewise.
	
2001-10-24  Ross Johnson  <rpj at setup1.ise.canberra.edu.au>

	* attr.c (pthread_attr_setstacksize): Quell warning
	from LCC by conditionally compiling the stacksize
	validity check. LCC correctly warns that the condition
	(stacksize < PTHREAD_STACK_MIN) is suspicious
	because STACK_MIN is 0 and stacksize is of type
	size_t (or unsigned int).

2001-10-17  Ross Johnson  <rpj at setup1.ise.canberra.edu.au>

	* barrier.c: Move _LONG and _LPLONG defines into
	implement.h; rename to PTW32_INTERLOCKED_LONG and
	PTW32_INTERLOCKED_LPLONG respectively.
	* spin.c: Likewise; ptw32_interlocked_compare_exchange used
	in place of InterlockedCompareExchange directly.
	* global.c (ptw32_interlocked_compare_exchange): Add
	prototype for this new routine pointer to be used when
	InterlockedCompareExchange isn't supported by Windows.
	* nonportable.c (pthread_win32_process_attach_np): Check for
	support of InterlockedCompareExchange in kernel32 and assign its
	address to ptw32_interlocked_compare_exchange if it exists, or
	our own ix86 specific implementation ptw32_InterlockedCompareExchange.
	*private.c (ptw32_InterlockedCompareExchange): An
	implementation of InterlockedCompareExchange() which is
	specific to ix86; written directly in assembler for either
	MSVC or GNU C; needed because Windows 95 doesn't support
	InterlockedCompareExchange().

	* sched.c (sched_get_priority_min): Extend to return
	THREAD_PRIORITY_IDLE.
	(sched_get_priority_max): Extend to return
	THREAD_PRIORITY_CRITICAL.

2001-10-15  Ross Johnson  <rpj at setup1.ise.canberra.edu.au>

	* spin.c (pthread_spin_lock): PTHREAD_SPINLOCK_INITIALIZER
	was causing a program fault.
	(pthread_spin_init): Could have alloced memory
	without freeing under some error conditions.

	* mutex.c (pthread_mutex_init): Move memory
	allocation of mutex struct after checking for
	PROCESS_SHARED.

2001-10-12  Ross Johnson  <rpj at setup1.ise.canberra.edu.au>

	* spin.c (pthread_spin_unlock): Was not returning
	EPERM if the spinlock was not locked, for multi CPU
	machines.

2001-10-08  Ross Johnson  <rpj at setup1.ise.canberra.edu.au>

	* spin.c (pthread_spin_trylock): Was not returning
	EBUSY for multi CPU machines.

2001-08-24  Ross Johnson  <rpj at setup1.ise.canberra.edu.au>

	* condvar.c (pthread_cond_destroy): Remove cv element
	that is no longer used.
	* implement.h: Likewise.

2001-08-23  Alexander Terekhov <TEREKHOV at de.ibm.com>

	* condvar.c (pthread_cond_destroy): fix bug with
	respect to deadlock in the case of concurrent
	_destroy/_unblock; a condition variable can be destroyed
	immediately after all the threads that are blocked on
	it are awakened.

2001-08-23  Phil Frisbie, Jr. <phil at hawksoft.com>

	* tsd.c (pthread_getspecific): Preserve the last
	winsock error [from WSAGetLastError()].

2001-07-18  Scott McCaskill <scott at magruder.org>

	* mutex.c (pthread_mutexattr_init): Return ENOMEM
	immediately and don't dereference the NULL pointer
	if calloc fails.
	(pthread_mutexattr_getpshared): Don't dereference
	a pointer that is possibly NULL.
	* barrier.c (pthread_barrierattr_init): Likewise
	(pthread_barrierattr_getpshared): Don't dereference
	a pointer that is possibly NULL.
	* condvar.c (pthread_condattr_getpshared): Don't dereference
	a pointer that is possibly NULL.

2001-07-15  Ross Johnson  <rpj at setup1.ise.canberra.edu.au>

	* rwlock.c (pthread_rwlock_wrlock): Is allowed to be
	a cancelation point; re-enable deferred cancelability
	around the CV call.

2001-07-10  Ross Johnson  <rpj at setup1.ise.canberra.edu.au>

	* barrier.c: Still more revamping. The exclusive access
	mutex isn't really needed so it has been removed and replaced
	by an InterlockedDecrement(). nSerial has been removed.
	iStep is now dual-purpose. The process shared attribute
	is now stored in the barrier struct.
	* implement.h (pthread_barrier_t_): Lost some/gained one
	elements.
	* private.c (ptw32_threadStart): Removed some comments.

2001-07-10  Ross Johnson  <rpj at setup1.ise.canberra.edu.au>

	* barrier

⌨️ 快捷键说明

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