2001-05-15  Kota Abe  <k-abe@media.osaka-cu.ac.jp>

	* Util/Makefile.in (SLIBVER): increased to 2.1 due to the
	pthread_mutex_t change.

	* libc_r/readdir_r.c: new file.

	* libc_r/genlock.[ch] : Separated from stdio-lock.c. Provides
	locking generic data structures.

	* libc_r/stdio-lock.c : Use above genlock interface.

	* src/mutex.c (pthread_mutex_destroy, pthread_mutex_setname_np):
	consider the case if the mutex has static name.
	
	* include/sys/types.h (PTHREAD_MUTEX_INITIALIZER_WITH_NAME_NP): 
	Added.

	* Util/Makefile.in : Add readdir_r.c and dirent.h

[PTL-2.1.8 released]  CVS tag: REL-2-1-8

2001-03-02  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* include/setjmp.h: change the name of struct _sigjmp_buf into
	struct _ptl_sigjmp_buf.  FreeBSD 4.2R's <machine/setjmp.h> defines
	the same struct.

2000-12-07  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/io_api.c (read_timedwait): fixed: infinite loop when READ()
	returns with EIO. (<hsaitoh@nts.ricoh.co.jp>).
	
	* src/io_api.c (readv_timedwait): ditto.

[PTL-2.1.7 released]  CVS tag: REL-2-1-7

2000-11-06  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/inline.c (_pthread_pq_put, _pthread_pq_get_in_prio): fixed: 
	_pthread_tcb::block.last is not correctly updated.
	(<hsaitoh@nts.ricoh.co.jp>).
	
2000-11-02  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* libc_r/stdio.c (GSAFECALL): fixed: does not unlock the 
	_mx_glock_mutex if the mutex has already been locked.
	(Thanks to <hsaitoh@nts.ricoh.co.jp>).

[PTL-2.1.6 released]  CVS tag: REL-2-1-6

2000-10-26  Kota Abe  <k-abe@media.osaka-cu.ac.jp>

	* sample/move-box.c (dispatch): use XCheckMaskEvent() rather than
	XNextEvent().

	* src/io.c (fcntl): support nonblocking I/O.

	* src/sleep.c (sleep): change return type and the argument of
	sleep() from int to unsigned.

	* src/cond.c: add unrenamed pthread_cond_timedwait().

	* include/time.h: add the prototype of nanosleep().

	* include/unistd.h: add the prototype of sleep().

	* include/pthread.h: fix the prototype of pthread_cond_timedwait().

2000-09-27  Kota Abe  <k-abe@media.osaka-cu.ac.jp>

	* src/stack.c (_pthread_sigill_handler): deal if ILL_BADSTK is not
	defined.

	* src/signal.c (_pthread_signal_handler): change the 3rd argument
	type from `struct ucontext' into `ucontext_t'.

[PTL-2.1.5 released]  CVS tag: REL-2-1-5

2000-09-22  Kota Abe  <k-abe@media.osaka-cu.ac.jp>

	* src/internal.h: change the field name of struct
	event_in_critical. Change the type of all members from
	sig_atomic_t to int.

	* src/internal.h (REQUEST_RESCHEDULING): add for sched.c.  Modify 
	_pthread_link_to_run_queue() to use this.

	* src/psigmask.c (_pthread_psigmask_clear_if_need): remove
	`_sigmask' from function names such as
	_pthread_psigmask_clear_sigmask_if_need().

	* src/signal.c (_pthread_pendsig): remove the calls to 
	_pthread_psigmask_mask() and 
	_pthread_psigmask_clear_if_need().
	
	* src/psigmask.c (_pthread_psigmask_mask): swap the order of
	`sigprocmask()' and `masked = 1'.  A signal interruption between
	them had caused inconsistency with the process's signal mask state
	and the value of `masked'.  Thanks to <hsaitoh@nts.ricoh.co.jp>.

	* src/psigmask.c (_pthread_psigmask_clear_if_need): Likewise.

	* Scatter Year `2000' to Copyright messages.
	
2000-09-19  Kota Abe  <k-abe@media.osaka-cu.ac.jp>

	* include/signal.h: add #include <sys/types.h> to compile programs
	which include only <signal.h>.  Suggested by <msaitoh@netbsd.org>.

2000-09-11  Kota Abe  <k-abe@media.osaka-cu.ac.jp>

	* src/io_api.c (pipe): fixed: if one of the call to 
	_pthread_io_fdinit() fails, the internal file descriptor table
	will be inconsistent.  Thanks to <hsaito@nts.ricoh.co.jp>.
	
	* src/io_api.c (close): the pair of CLOSE() and 
	_pthread_io_fdclose() should be called atomically.
	Thanks to <hsaito@nts.ricoh.co.jp>.
	
2000-08-03  Kota Abe  <k-abe@media.osaka-cu.ac.jp>

	* include/sys/pthread-before.h, pthread-after.h: add #defines for
	wait3, wait4.

	* include/sys/wait.h: add prototypes for wait3, wait4.

	* Util/configure.in: Add checking for wait4().

	* src/wait.c: Avoid the race condition between calling WAITPID()
	and _pthread_block().  Add wait3(), wait4().  By
	<hsaito@nts.ricoh.co.jp>.
	
[PTL-2.1.4 released]  CVS tag: REL-2-1-4
	
2000-07-11  Kota Abe  <k-abe@media.osaka-cu.ac.jp>

	* add call to pthread_testcancel() to BSD socket APIs, etc.
	Thanks to <hsaito@nts.ricoh.co.jp>
	
	* src/internal.h (END_CRITICAL_YIELD): removed.

	* src/sched.c (_pthread_block_voluntary): renamed from 
	_pthread_blocked_yield().
	
	* src/sched.c (_pthread_context_switch): do not decrement critical
	level in this function to fix the bug reported by Christian Bauer
	<cbauer@zino.Physik.Uni-Mainz.DE>.

2000-07-06  Kota Abe  <k-abe@media.osaka-cu.ac.jp>

	* src/sigwait.c (sigwait_do): do not call END_CRITICAL to fix 
	SIGSEGV problem reported by hsaito@nts.ricoh.co.jp.

	* src/cond.c (cond_timedwait_do): ditto.

[PTL-2.1.3 released]  CVS tag: REL-2-1-3

2000-06-02  Kota Abe  <k-abe@media.osaka-cu.ac.jp>

	* src/mutex.c: Now pthread_mutex_lock() is NOT a cancellation
	point, as POSIX requires.

	* src/internal.h: add block_flags member to struct block_func,
	which indicates the blocking function is cancellable or not.

	* src/sched.c (_pthread_block): check cancellation status before
	making the calling thread block.  (Thanks to hsaito@nts.ricoh.co.jp)

	* add call to pthread_testcancel() to a lot of cancellation point
	functions.

2000-05-25  Kota Abe  <k-abe@media.osaka-cu.ac.jp>

	* sample/producer-consumer.c, sample/philosopher.c (main): add
	some setname_np().

	* src/debug.c: pdb related functions for mutex and condition
	variables are moved to mutex.c and cond.c, respectively.
	
	* src/mutex.c, src/cond.c: fixed: mutex and cv chain can be
	corrupted. (fixed by hide@koie.org)

	* src/debug.c (_pthread_debug_init, pdb_init): To make possible to
	use PDB from FreeBSD-3.x, defer the getenv("PTL_DEBUG_PORT") after
	main() is called if it is impossible to access environment
	variables from _init section function.
	
[PTL-2.1.2 released]  CVS tag: REL-2-1-2

2000-05-01  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/specific.c (pthread_key_create): remove unused variable `rc'.

	* Util/configure.in (HAVE_UNION_SEMUN): define if the system has
	union semun.

	* sample/sysvsem.c: define union semun if the system does not have
	it.

	* libc_r/strtok.c: surround function name by () to avoid macro
	expansion for Linux.

2000-04-23  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* Util/configure.in (GCC_STDINCLUDE): choose the first item of
	gcc's include directory.
	(msaitoh@netbsd.org)

	* Util/Makefile.in : stamp-h.in -> $(utildir)/stamp-h.in
	(msaitoh@netbsd.org)
	
[PTL-2.1.1 released]  CVS tag: REL-2-1-1

2000-03-02  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* Util/config.guess, Util/config.sub: Incorporate from
 	autoconf-2.13.

2000-03-01  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/io_udp.c (send_timedwait, sendto_timedwait,
 	sendmsg_timedait): While underlying system calls return with
 	EWOULDBLOCK, continue writing.
	(Thanks to Pete Flugstad <pete_flugstad@icon-labs.com>)

2000-02-04  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/spec.h: definition of USE_ASM and USE_SIGSTACK are moved
 	from jump.c.

	* src/signal.c (_pthread_signal_init): On system that PTL can set
 	the stack pointer without using sigstack(), SIGUSR2 can be used
 	for user's purpose.

	* src/internal.h (END_CRITICAL): fixed: signal interruptions are
 	lost in certain situation theoretically.

[PTL-2.1 released]  CVS tag: REL-2-1

2000-02-03  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/io.c: use O_NONBLOCK rather than O_NDELAY in SunOS5.

	* include/sys/pthread-before.h: add workaround to avoid conflict
 	of pthread_kill and pthread_atfork on Solaris7.

	* Util/Makefile.in: version number of libPTL.so is changed to 2.0.
	
	* README.INCOMPAT: merged into README.jp and removed.

	* README.dirkside: removed.
		
	* README, README.jp: update.
		
	* src/specific.c (pthread_key_create, pthread_setspecific): if
 	fail to allocate the memory, returns ENOMEM.

	* src/*.c: remove logging feature.

	* src/log.c, src/ptllog.h: removed.

	* src/cond.c, src/mutex.c, include/sys/types.h: pthread_mutex_t
 	and pthread_cond_t are changed from `pointer to struct' to
 	`struct'.

	* src/cond-attr.c, include/sys/types.h: pthread_condattr_t is
 	changed from integer handle to struct.

	* src/cond.c, src/mutex.c, src/pthread.c:
 	pthread_{mutex_,cond_,}setname_np returns ENOMEM if malloc()
 	returns NULL.
		
2000-02-01  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/cancel.c (pthread_setcancelstate): if FLAG_CLEANUP_HANDLER
 	is set, do not call pthread_exit() even if PTHREAD_CANCEL_ENABLE
 	is specified and the thread is already cancel requested.
	
	(pthread_testcancel): similar to above.

	* src/internal.h (FLAG_CLEANUP_HANDLER): this flag shows that the
 	thread is currently executing cleanup handlers.

	* src/sched.c (after_csw): Clear FLAG_DO_CANCEL flag before
 	executing cleanup handlers to prevent entering executing cleanup
 	handlers loop.

2000-01-28  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/io.c (_pthread_pdb_iostat): Implement `iostat' command into
 	PDB.

[PTL2-current-990622-patch#5 released]  CVS tag: current-990622-patch#5

1999-09-26  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/signal.c (signal_cache_target): fixed; this function had a
 	possibility to return a thread even after it exited. (Thanks to
 	hide@koie.org)

[PTL2-current-990622-patch#4 released]  CVS tag: current-990622-patch#4

1999-08-26  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* Util/Makefile.in : fixed; sparc_sejmp.po cannot be made on
 	NetBSD/sparc.

[PTL2-current-990622-patch#3 released]  CVS tag: current-990622-patch#3
	
1999-08-06  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/pthread.c (pthread_create): set thread state to
 	STATE_SUSPEND if the thread is created with
 	PTHREAD_CREATE_SUSPENDED_NP.

1999-08-05  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

[PTL2-current-990622-patch#2 released]  CVS tag: current-990622-patch#2
	
1999-08-05  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* README.PDB: update the documentation.

	* Util/Makefile.in (SLIBVER): shared library version # is
 	incremented to 1.2.

	* src/io.c: FD_tab is changed from an `array of struct fddesc' to
 	`array of pointer to struct fddesc' and struct fddesc is allocated
 	on depend.  this conserves some amount of memory.
	
	* src/signal.c (_pthread_sig_deliver_from_pendset): new function.
  	deliver all deliverable signals from process's pending signal set.
  	pthread_sigmask() and _pthread_sig_deliver() are modified to use
 	this function.

	* src/suspend.c (resume): if a thread is resumed, deliver
 	signals from process's pending signal set.

	* src/debug.c (pdb_onethread): if the thread is suspended by
 	pthread_suspend_np(), mark it with `#'.  if suspended from PDB,
 	mark it with `!'.
	(state_string): change thread state display if the thread is
 	suspended.

1999-08-04  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/mutex.c (pthread_mutex_unlock): if a thread that is not
 	owner of the mutex calls pthread_mutex_unlock, show warning
 	message and returns EPERM.

	* Util/ptlg++.in : new file.

	* Util/ptlgcc.in : handle arguments with spaces correctly.  refer
 	$PTLGCC as gcc.  (hide@koie.org)

	* Util/Makefile.in, Util/configure.in: ptlg++ is made by configure.

1999-07-19  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/debug.c (pdb_suspend): implement `suspend all'.
	(pdb_resume): implement `resume all'.  pdb's suspend command does
 	not affect user's suspension state.
	
	(pthread_debug_pdb_write): if user is connecting to pdb,
 	pthread_debug_pdb_write() write to user's terminal.

	* src/sched.c (_pthread_sched_init): mark idle thread as
 	FLAG_INTERNAL_THREAD.

	* src/io.c (_pthread_io_init): mark I/O thread as
 	FLAG_INTERNAL_THREAD.

	* src/debug.c (_pthread_debug_init): mark pdb thread as
 	FLAG_INTERNAL_THREAD.

	* src/suspend.c (pthread_suspend_np): suspending is not a state,
 	but a flag.  remove STATE_SUSPEND, STATE_SUSPEND_AFTER_BLOCK, and 
	add FLAG_SUSPENDED. 

	* src/debug.c: remove `called from' in `ps' command (PDB).

	* src/signal.c (signal_cache_target): suspended thread would not
 	receive the signal.

1999-07-14  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/debug.c (_pthread_debug_init): fixed wrong argument passing
 	method to pdb_init() thread (pdb).

1999-07-13  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/exit.c (exit): call fflush(NULL) before calling 
	_pthread_io_cleanup for Solaris2.

	* src/io.c : most api are moved to io_api.c.  FD_tab is now
 	growable.  many changes are done.

	* src/inline.c (xrealloc): add as analogue of xmalloc().

	* src/io.c (_pthread_io_init): do not initialize pre-opened files
 	on PTL initialization.  all fds are initialized on the fly.  all
 	APIs that takes fd now call _pthread_io_fdinit(), that was renamed
	from fd_init().
	
	(_pthread_io_init_after_cleanup): renamed from _pthread_io_reinit().
		
	STDFD_BLOCKING is now #undef'ed.
	
	* libc_r/stdio-lock.c (ftrylockfile): add.

1999-07-07  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/execve.c (execve): drop nonblocking i/o mode on all fds
 	before execve(). (Thanks to hide@koie.org)

	* libc_r/stdio.c (setbuffer): in SunOS5, 3rd argument is size_t.
	(Thanks to yasumoto@ics.es.osaka-u.ac.jp)

[PTL2-current-990622-patch#1 released]  CVS tag: current-990622-patch#1

1999-06-23  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/cancel.c (pthread_setcancelstate, pthread_testcancel): does
 	not call pthread_exit() while executing cleanup handlers.
	(Thanks to hide@koie.org)

	* libc_r/stdio-lock.c (_mx_unlock): owner of FILE* is NULLed before
	pthread_cond_broadcast().  Avoid following rarely happened scenario.
	(Thanks to hide@koie.org)
	
		thread A calls _mx_lock(); /* get lock */
		thread B calls _mx_lock(); /* wait on cond */
		thread A calls _mx_unlock(); /* cond_broadcast */
		thread A calls _mx_lock(); /* nestlevel++ (this is the bug!) */
		thread B woken up from condwait; /* locker B. nestlevel = 0 */
		thread B calls _mx_unlock(); /* remove the lock */
		thread A calls _mx_unlock(); /* lock is not found !! */
	
[PTL2-current-990622 released]  CVS tag: current-990622
	
1999-06-22  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/debug.c (_pthread_debug): pthread_cancel() related work
 	around.

	* libc_r/stdio-lock.c (_mx_unlock): pthread_cond_signal() is
 	changed to pthread_cond_broadcast().  (pthread_cond_signal() was
	bad. if a thread is in _mx_lock(), and the thread is pthread_cancel()ed,
	and the thread is in PTHREAD_CANCEL_DISABLE, pthread_cond_signal()
	does not affects the thread!!)
	(Thanks to senda@ic.rdc.ricoh.co.jp)
	
[PTL2-current-990512-patch#4 released]  CVS tag: current-990512-patch#4

1999-06-21  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* PROBLEMS: add problem report on
 	  NetBSD/pc98. (Thanks to nork@cityfujisawa.ne.jp)

	* src/io.c (select): add limit check for nfds. 
	  (Thanks to senda@ic.rdc.ricoh.co.jp)
	
1999-06-15  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* Util/Makefile.in : cleanup profiled library (libPTL_p.a) support.
	libc_r/ and net_r/ are added to $VPATH. 
	
	* libc_r/Makefile.in, net_r/Makefile.in : these files are merged
 	to Util/Makefile.in.

	* src/debug.c (pdb_signal): add "\n" to "SIG_SIGWAIT_NP".

	* include/sys/pthread-after.h : #define sigsuspend to
	_pthread_sigsuspend.

	* include/signal.h (sigwait): #define sigwait to _pthread_sigwait.

	* include/signal.h: add prototype of sigsuspend() and sigwait().

	* include/pthread.h include/sys/pthread-after.h: wrap #define
 	pthread_mutex_lock _pthread_mutex_lock etc. with `#ifndef
 	PTL_NO_RENAME'.

	* Util/ptlgcc.in : not handle -E specially.

	* Util/mkspecs.in: `-include pthread-init.h' is not applied when 
	-E option is given. (nork@cityfujisawa.ne.jp).

1999-06-14  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* include/sys/pthread-after.h: add #include <sys/pthread-cdecl.h>.

	* include/pthread.h, sys/pthread-after.h : remove ``#if __GNUC__
 	>= 2'' conditionals for __FUNCTION__.

	* include/sys/pthread-cdecl.h: ``#define __FUNCTION__ NULL'' if
	__FUNCTION__ is not available.

	* src/mutex.c, src/cond.c, src/join.c, include/pthread.h : add
 	pthread_mutex_lock() in addition to _pthread_mutex_lock(), and so
 	on. (nork@cityfujisawa.ne.jp)
	
[PTL2-current-990512-patch#3 released]  CVS tag: current-990512-patch#3

1999-06-11  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* README.dirkside: add a note that says 'this is obsoleted
 	information'.

	* README.SVR4: removed.
	
	* README.Linux: removed.

	* src/ansi.h: remove prototypes of MALLOCs.

	* Util/mkspecs.in: incorporate linker_opt option (-ldl)
 	generated by libaltsys.

	* PROBLEMS: remove problem note about fork(), wait(), waitpid().
	
	* Util/Makefile.in (install): install libPTL.so as a symbolic link
 	to libPTL.so.XX.  (required by FreeBSD3.1?).

	* Util/ptlgcc.in : use $GCC_EXEC_PREFIX instead of -specs= option
 	which is not supported before gcc-2.8.?.

	* src/proof-malloc.c : Use BSD malloc routine rather than libc's
 	malloc in default.

[PTL2-current-990512-patch#2 released]  CVS tag: current-990512-patch#2

1999-05-24  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* sample/sysvsem.c (main): cleanup printf format strings.
	
	* sample/bench.c: s/%lf/%f/g
	
	* sample/bench.c: translate some part of Japanese comments into
 	English. (some are left).

	* src/timer.c: make gettimeofday() not called with context switch
 	of a SCHED_OTHER thread.

1999-05-23  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* include/setjmp.h (sigsetjmp): append ')' which I removed by
 	mistake in 990512-patch#1.
	
[PTL2-current-990512-patch#1 released]  CVS tag: current-990512-patch#1

1999-05-20  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/thread-attr.c (pthread_attr_init): default thread attribute
 	is changed; default stack property was changed from
 	PTHREAD_STACK_SAFE_NP to PTHREAD_STACK_NONE_NP.  Because POSIX
 	does not provide a stack limit checking and safe stacks are
 	expensive.

	* src/stack.c (getstack): if AUTO_STACK_EXPANSION is defined and
 	pthread_stack_expansion_np == 0, extra unnecessary heap stack was
 	allocated (!).
	
1999-05-14  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* include/sys/pthread-before.h: ioctl is not renamed when
 	compiling user's code.  Because <soundcard.h> of NetBSD also
 	renames ioctl.  Sigh.

	* include/setjmp.h: typedef jmp_buf as
 	array. (senda@ic.rdc.ricoh.co.jp)
	
	* include/setjmp.h (sigsetjmp): s/sigprocmask/pthread_sigmask/.

[PTL2-current-990512 released]  CVS tag: current-990512
	
1999-05-12  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* Util/Makefile.in: make ptlg++ from ptlgcc. (from NetBSD ptl2
 	package)
	
	* sample/cplusplus.cxx: new sample program for using from C++.

	* sample/Makefile.in (.cxx): add for C++.

	* include/sys/pthread-after.h: add #undef pipe.

	* include/sys/pthread-before.h: add #define pipe __pipe_orig.

1999-05-11  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* Util/configure.in: correct var. $MKSHLIBCMD on SunOS4.
	
	* Util/configure.in: if system is on ELF, add -soname option to ld
 	when constructing libPTL.so (for NetBSD and FreeBSD).
	
	* include/sys/pthread-init.h: add #warning for C++ user.

	* COPYING: add about src/system.c and src/signal_netbsd.c, which
 	come from NetBSD.

	* src/proto.h: add __attribute__((constructor)) to _pthread_init
	if compiled with gcc and making static library.

	* include/sys/pthread-init.h: constructor call is done iff
 	NEED_EXPLICIT_INIT is defined.

	* Util/configure.in: #define NEED_EXPLICIT_INIT if shared
 	library's init function does not work (like FreeBSD-2.2.7).

	* src/stack.c: remove sys_errlist decl.

	* src/init.c (__init): Change _init() into __init().  

	* include/sys/pthread-init.h: add prototype declaration.
	  (incorporate NetBSD's PR(pkg/7495)).

1999-05-10  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* include/arpa/inet.h: incorportate NetBSD's PR(pkg/7507).

	* src/init.c, src/io.c: Initialize sa_flags before calling 
	_pthread_wrapper_sigaction().
	
	* src/fork.c (vfork): implements vfork().  In PTL, This is
 	equivalent to fork().   Since execve() mods critical level, 
	it is better that address space is separated between vfork and execve.
	
	* src/system.c: implements system().  From NetBSD-current source
 	code.

1999-04-15  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/init.c (_init): 追加．共有ライブラリ版 PTLの初期化を行う．
	(C++ から呼ばれた場合の対策)

	* Util/configure.in: 共有ライブラリの _init 関数から dlopen を呼べる
	かどうかをテストする. (FreeBSD-2.2.7(以前?)の ld.so はこれができない
	ので，C++からの使用には問題がある．FreeBSD-3.1 では問題ない)

1999-04-14  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* Util/ptl-include1.pl (wanted): /usr/include/g++ 等のために，ファイ
	ル名から生成される preprocessor symbol の + を X に置換するようにし
	た．

	* include/sys/pthread-init.h: C++ から使用される場合を考慮．
	(Thanks to <ohhira@dep.ricoh.co.jp>)
	
1999-04-13  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/wait.c (_pthread_sigchld_handler): cleanup source code.

	* src/internal.h, src/queue.c, src/inline.c: ring queue の削除．

	* src/debug.c (pdb_signal): シグナルアクションが SIG_SIGWAIT_NP のと
	きに，sigwait しているスレッドを表示するのをやめた．

	* src/sigwait.c: signal 毎の queue を使うのをやめて，sigwait を発行
	しているスレッドのキューを実装．

	* src/internal.h: TCB から ring_queue sigwait; を削除．

[PTL2-current-990325 released]  CVS tag: current-990325

1999-03-25  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* Util/ptlgcc.in: -E フラグが指定されている場合，通常の gcc として起
	動するように変更．

	* src/timer.c (_pthread_timer_before_exec): 追加．

	* src/execve.c: 新規ファイル．exec する前にインターバルタイマを適切
	に設定する．

[PTL2-current-990324 released]  CVS tag: current-990324
	
1999-03-24  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* Util/Makefile.in (install): mkdir-p を使うように修正．(Thanks to
 	msaitoh@uec, yasufu-i@aist-nara)
	
	* Util/mkdir-p: 追加．

	* libc/stdio-lock.c: flockfile, funlockfile が誤って削除されていたの
	を修正．

[PTL2-current-990319 released]  CVS tag: current-990319

1999-03-19  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* sample/philosopher.c (main): スレッドへの引数がうまくわたらないバ
	グを修正．

	* libc_r/stdio-lock.c: FILE 構造体を，fileno(FILE*) でロックするのを
	やめて，FILE 構造体に一対一に対応する構造体をつくって管理するように
	変更．NetBSD の sprintf が不完全な FILE 構造体を使って vfprintf を呼
	ぶことへの対策．

	* src/signal_netbsd.c, etc.: NetBSD-1.4 用の workaround を追加. 
	(by msaitoh@uec)
	
1999-03-02  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* include/unistd.h: ttyname_r のプロトタイプ宣言の追加．

	* Util/configure.in: ttyname_r の有無をチェック

	* libc_r/stdio.c: 以前は，PTL の stdio 関数は _proof_print のように
	  _proof_ がついていた (stdio.h で #define printf _proof_print) が，
	  libaltsys が shared library を使っている場合，printf が printf と
	  なるようにした．
	
	* libc_r/stdio.c: libc の関数を呼ぶ時は，cancel を disable するよう
	にした．

[PTL2-current-990302 released]  CVS tag: current-990302
	
1999-03-02  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* include/sys/pthread-before.h, pthread-after.h, etc.: struct
 	sigaction を OS のものをそのまま使うように変更．

1999-02-26  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/internal.h: _pthread_prio_queue を sys/types.h から移動. 

	* include/pthread.h: pthread_atfork 追加. 

	* include/unistd.h: fork 追加.

1999-02-25  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/fork.c: 新規ファイル. 

	* src/sched.c (_pthread_idle_thread): idle thread に 
	FLAG_INHERIT_FORK を付与.

	* src/io.c (io_dispatch_thread): I/O thread に FLAG_INHERIT_FORK を
	付与.
	
	* src/internal.h (FLAG_INHERIT_FORK): 追加.

1999-02-17  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/alarm.c (alarm), src/timer.c (_pthread_time_queue_act): 疑似 
	SIGALRM の送信に _pthread_add_sigpending_set_proc を使うのをやめて,
 	_pthread_default_handler を直接呼び出すように変更.

	* src/signal.c (_pthread_add_sigpending_set_proc): 削除. 

	* src/internal.h: struct sig から althandler, actual_sig を削除.
	
1999-02-15  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* include/sys/wait.h: __PTL_{BEGIN,END}_DECLS を追加. 

[PTL2-current-990215-patch#1 released]  CVS tag: current-990215-patch#1
	
	* net_r/*.c, include/resolv.h: code beautified (by msaitoh@uec).

	* include/sys/wait.h (WIFSIGNALED): システムのWIFSIGNALED 等が 
	union wait を使っている場合 (SunOS4.1.4等) にマクロがうまく定義され
	なくなるため, WIFSIGNALED等は自前で定義する. 
	
	* src/cond.c (pthread_cond_destroy): free し忘れを修正. 

	* src/mutex.c (pthread_mutex_destroy): free し忘れを修正. 

[PTL2-current-990215 released]  CVS tag: current-990215

1999-02-15  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* doc/manual.texi (Waiting for Process Termination Funcs): wait,
 	waitpid の説明を修正. 

	* include/sys/wait.h: 新規ファイル.

	* src/wait.c (waitpid): 追加 (POSIX)
	(wait): 追加(POSIX). 

	* src/wait.c: 新規ファイル.
	
	* src/signal.c (_pthread_default_handler): シグナルのアクションが,
 	SIG_IGN か, あるいはアクションが SIG_DFL でデフォルトアクションが無
	視のシグナルが配送された場合, スレッドのペンディングシグナルセットに
	追加されてしまうバグを修正.

1999-02-12  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/signal.c (_pthread_sig_deliver): ユーザの signal handler 実行
	中に新たなシグナルが配送された場合に, そのシグナルが無視されるバグを
	修正. (found by perl t/lib/posix.t)

	(_pthread_sig_deliver): アクションが SIGIGN のシグナルがスレッドに配
	送されると, 無限ループするバグを修正. (found by perl t/io/pipe.t)

	* net_r/getprotoent.c (getprotoent_r): protocols にエイリアスが含ま
	れていると必ず失敗するバグを修正. (MIT pthread original bug, found
 	by perl t/lib/io_sock.t).

	* libc_r/Makefile.in (clean): 追加.

	* include/sys/types.h, src/cond.c, src/debug.c: pthread_cond_t を
	構造体から構造体へのポインタへ変更.
	
	* include/sys/types.h, src/mutex.c, src/debug.c: pthread_mutex_t を
	構造体から構造体へのポインタへ変更.

[PTL2-current-990204-patch#2 released]  CVS tag: current-990204-patch#2
[PTL2-current-990204-patch#1 released]  CVS tag: current-990204-patch#1

1999-02-09  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* Util/ptl-include1.pl (wanted): /usr/include 下のヘッダファイルがシ
	ンボリックリンクで, gcc が同名のファイルを用意している場合, PTL の
 	ではシンボリックリンクとしない. (SunOS4.1.4 <varargs.h> problem)

	* src/io.c (read_timedwait): Solaris では, tty が EOF 状態のときに
	ioctl(FIONREAD) が 0 を返すので, それに対応. 

	* src/sysv_syscall.c: Solaris では, システムコール X に対して, 
	_libc_X, _X の両方を定義するように修正. 

	* Util/Makefile.in (install): install の dependency から, all を外し
	た. (root で make install ができない場合があるため).

	* Util/ptlgcc.in: 新規ファイル: gcc の代りに使うコンパイルドライバ.

	* Util/mkspecs.in: 新規ファイル: gcc の specs ファイルを生成する. 

	* Util/configure.in: libsocket があるかどうかをチェック. 

1999-02-08  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* sample/test-cat.c: remove #include <pthread.h>

	* README: <pthread.h> を include しなくてもよくなったので, 該当個所
	を削除.

	* doc/manual.texi: <pthread.h> を include しなくてもよいようになった
	ので, 該当個所を削除. 

	* Util/ptl-include1.pl: 生成する全てのヘッダファイルで 
	<sys/pthread-init.h> をインクルードするように修正.
	
	* include/*.h: <sys/pthread-init.h> をインクルードするように修正. 

	* include/pthread.h: 初期化部分を sys/pthread-init.h に切り出した. 

	* sample/network.c (do_serve): pointer をキャストして int にしていた
	のをやめた.

	* sample/philosopher.c (philosopher): pointer をキャストして int に
	していたのをやめた.

	* net_r/res_search.c (res_search): correct sprintf format string.
	  remove unused variable (error).

	* src/timer.c (_pthread_time_queue_head): 第1引数は絶対時刻で戻すよ
	うに修正.
	
	* src/timer.c (itimer_set): 大幅に書き直し.

	* src/signal.c (_pthread_set_sighandler): 追加. 

	* src/internal.h (struct sig): 疑似シグナル(alarm()等)を処理する関数
	へのポインタ althandler を追加.

	* Util/ptl-include1.pl (wanted): symbolic link を処理するように修正.
	  (Thanks to msaitoh@uec)

1999-02-05  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/sigset.c: INVALIDSIG を削除.

	* NetBSD/alpha のために修正 (Thanks to itohy@netbsd.org)
	* net_r/res_debug.c (p_option): %x -> %lx.
	* src/sched.c (launch): 引数をポインタ渡しに変更.
	* src/debug.c (pdb_init): 引数をポインタ渡しに変更.
	* src/debug.c (pdb_printwaiter): 引数をポインタ渡しに変更. 

[PTL2-current-990204 released]  CVS tag: current-990204
	
1999-02-04  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* doc/manual.texi: 現状にあわせて修正. 

	* README: 記述の追加. 

	* src/init.c (_pthread_init): Sigall_mask を最小限のビットのみをセッ
	トする. NetBSD-1.3I 対策. 

1999-02-03  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/init.c: pthread.c から分離.

	* src/sigsuspend.c: signal.c から分離. 

	* src/sigwait.c: signal.c から分離.

	* src/internal.h: _Pthread_prio_queue, _Pthread_all_queue, 
	_Pthread_other_thread_num を struct threadset に統合.

	* src/signal.c: deliver_signal_sub(): caller側に統合. 

	* src/inline.c (_pthread_sigminusset): _pthread_sigdelset から関数名
	を変更.

	* src/signal.c (exist_signal_to_deliver): caller側に統合. 

	* src/inline.c (_pthread_sigselect): signal.c から移動.

	* src/stack.c: Stackprop を static 変数に.

	* src/internal.h: _Pthread_{voluntary,preemptive}_csw, _
	Pthread_sigalarm を struct statistics _Pthread_stat へ統合.

1999-02-02  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/jump.c: 使用されていない関数 clear_sigmask() を削除.

	* src/signal.c (pthread_sigmask): unmask したときに, pending されて
	いた process level signal で, マスクされていないものを thread に配送
	する.

	* README.PDB: PDB 起動方法の説明を更新. 

1999-02-01  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* sample/Makefile.in: profile version をマージ

1999-01-29  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* include/errno.h: extern int errno; を追加. 

	* libc_r/ctime.c: HAVE_{LOCALTIME,GMTIME,ASCTIME,CTIME}_R でチェック
	する.

	* Util/pthread-extsym.h.in:
 	HAVE_{LOCALTIME,GMTIME,ASCTIME,CTIME}_R を追加. (namespace
 	pollution?)

	* include/time.h: asctime_r, ctime_r の 3rd argument を削除. 
	#ifdef HAVE_{LOCALTIME,GMTIME,ASCTIME,CTIME}_R を追加. 
	
	* Util/configure.in: localtime_r, gmtime_r, asctime_r, ctime_r の有
	無をチェック. (NetBSD-current 対策; Thanks to msaitoh@uec>

1999-01-27  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/io.c (fd_nonblock): fcntl()でノンブロックI/Oモードにする際に,
 	open時のモードを保存していなかったバグを修正. 
	
[PTL2-current-981201-patch#2 released]  CVS tag: current-981201-patch#2
	
1998-12-15  Kota ABE  <k-abe@kuroneko.media.osaka-cu.ac.jp>

	* src/sysv_syscall.c: Solaris 用の weak symbol 群を追加. 

	* src/internal.h: struct _pthread_tcb::sig_pend signal pending set 
	を nsigset_t で持つように変更.

	* src/inline.c (_pthread_nsig*): sizeof(sigset_t) > 32 なマシンでコ
	ンテキストスイッチの速度を稼ぐために, nsigset_t を追加. 
	sigset_t 中の 1 のビットの数を保持しておく. 
	
	* src/signal.c (_pthread_signal_init): profiling option つきでコンパ
	イルした場合に対応. 
	
1998-12-10  Kota ABE  <k-abe@kuroneko.media.osaka-cu.ac.jp>

	* Util/Makefile.in (prof): Profiled Library に libaltsys.a をマージ
	するように修正.

[PTL2-current-981201-patch#1 released]  CVS tag: current-981201-patch#1
	
1998-12-02  Kota ABE  <k-abe@kuroneko.media.osaka-cu.ac.jp>

	* Util/Makefile.in (install): make install で失敗するのを修正.
	(Thanks to tatumoto@ics.es.osaka-u.ac.jp)

[PTL2-current-981201 released]  CVS tag: current-981201
	
1998-12-01  Kota ABE  <k-abe@kuroneko.media.osaka-cu.ac.jp>

	* sample/network.c (main): gethostbyaddr_r, inet_ntoa_r を使うように
	  変更.

1998-11-30  Kota ABE  <k-abe@kuroneko.media.osaka-cu.ac.jp>

	* sample/udp_echo.c: gethostbyname_r を使用するように変更. 
	
	* COPYING: MIT pthread に関する記述を追加. 

	* net_r: MIT pthread から gethostbyname_r 等の関数を取り込み. 
	
	* libc_r/: reentrant/ から名称変更.
	
1998-11-27  Kota ABE  <k-abe@kuroneko.media.osaka-cu.ac.jp>

	* include/*.h: __PTL_{BEGIN,END}_DECLS の付け忘れを修正. 
	timeout 付き関数のプロトタイプ宣言を追加. 

	* src/io.c, src/io_udp.c: ほとんどの I/O 関数に timeout 付き 
	version を作成 (read_timedwait, etc).  mit pthread compatible(?).
	
	* src/sched.c (_pthread_context_switch): 自分自身に context switch 
	すると, errno が破壊されるバグを修正.

	* src/signal.c (do_handler): 割り込まれたときの stack pointer の値を
	記憶する.

	* src/io_udp.c (udp_wait): 関数の型を void から int に変更. 

	* src/io.c (_pthread_io_request): 引数に timeout を追加. I/O イベン
	トの timeout を指定できる. 関数の型を void から int に変更. 全ての呼
	び出し側で帰り値をチェック. (I/O 中にシグナルが配送されても EINTR に
	ならないバグを修正)
	
1998-11-26  Kota ABE  <k-abe@kuroneko.media.osaka-cu.ac.jp>

	* src/pthread.c (pthread_exit): thread が exit するときに, timer
 	queue からイベントを全て削除する. (Thanks to
 	tatumoto@ics.es.osaka-u.ac.jp)

1998-11-25  Kota ABE  <k-abe@kuroneko.media.osaka-cu.ac.jp>

	* src/mutex.c (mutex_undo): mutex_lock 中に signal で割り込まれた場
	合, mutex_lock が修了しなくなる場合があるバグを修正.

	* src/cond.c (cond_timedwait_undo): cond_wait 中に signal で割り込ま
	れた場合, condition wait が修了しなくなる場合があるバグを修正. 

	* src/alarm.c (alarm): POSIX 準拠 alarm() を追加. 

	* include/unistd.h: alarm() のプロトタイプ宣言を追加. 

	* Util/Makefile.in: ライブラリを libpthreads.{a,so} から
	libPTL.{a,so} に変更
	
	(install): shared library を install するように変更. 

1998-11-24  Kota ABE  <k-abe@kuroneko.media.osaka-cu.ac.jp>

	* Util/Makefile.in: OS が shared library をサポートしている場合,
 	  shared library (libpthread.so) も作る.

	* Util/configure.in (EGCS): gcc が EGCS かどうかチェック. 
	  pic object のオプションの設定. 
	
	* Util/ccarg.sh.in: EGCS の場合, -Wno-unknown-pragmas を加える. 

1998-11-20  Kota ABE  <k-abe@kuroneko.media.osaka-cu.ac.jp>

	* src/fake_gcc.c: 削除.

	* include/pthread.h: PTL の初期化を gcc の constructor extension を
	使って行う. gcc でない場合は, 従来通り. 

	* src/debug.c (_pthread_debug_init): コマンドライン引数 -+-port= を
	廃止. 代わりに $PTL_DEBUG_PORT を使う. 

	* src/pthread.c (_pthread_init): コマンドライン引数 argc, argv を受
	け取らないように変更. 

1998-11-16  Kota ABE  <k-abe@kuroneko.media.osaka-cu.ac.jp>

	* include/time.h: clockid_t の定義を追加. (<sys/types.h> から 
	<time.h> が #include される場合に対応)

1998-11-10  Kota ABE  <k-abe@kuroneko.media.osaka-cu.ac.jp>

	* src/debug.c (_pthread_notreached): 新規関数. NOT_REACHED マクロか
	ら呼ばれる.
	
	* src/internal.h (NOT_REACHED): _pthread_notreached() を呼ぶように修
	正.

	* sample/sysvsem.c: 使われていない変数の削除

	* sample/bench.c: 使われていない変数の削除

	* sample/Makefile.in (BASECFLAGS): __STDC__=0 のために追加

	* include/signal.h: <sys/pthread-before.h> で pthread_t が #define 
	されている場合があるため, add #undef pthread_t を追加. 

	* include/sys/pthread-{before,after}.h: OS Native の pthread と衝突
	しないように #define を追加. 

1998-11-09  Kota ABE  <k-abe@kuroneko.media.osaka-cu.ac.jp>

	* include/sys/types.h: Solaris2.6 対応.

1998-10-08  Kota ABE  <k-abe@kuroneko.media.osaka-cu.ac.jp>

	* include/pthread.h (pthread_cond_timedwait): correct typo.
	  pthread_cond_timed_wait -> pthread_cond_timedwait.

1998-10-07  Kota ABE  <k-abe@kuroneko.media.osaka-cu.ac.jp>

	* Util/Makefile.in (install): mkdir $(exec_prefix).

1998-09-28  Kota ABE  <k-abe@kuroneko.media.osaka-cu.ac.jp>

	* Util/stk-grow-dir.c (main): printf フォーマットのバグ修正.

	* src/jump.c (_pthread_call): m68k, alpha 用のコードの最適化.
	(yasufu-i@is.aist-nara.ac.jp).

	* src/io_sysv.c (msgrcv): NetBSD では, 返り値の型を ssize_t にする. 
	(yasufu-i@is.aist-nara.ac.jp).

	* Util/configure.in: Solaris2(SPARC) では, sparc_setjmp.S を使わずに, 
	システムの sigsetjmp() を使うように変更
	(yasufu-i@is.aist-nara.ac.jp).

	* src/table.c: struct tcb_chunk::bitmap を unsigned long から 
	unsigned int に変更. (Thanks to yasufu-i@is.aist-nara.ac.jp).

	* src/io.c (_pthread_io_init): SIGTT{IN,OUT} は常に無視(SIG_IGN)する. 
	struct sigaction vec の sa_flags, sa_mask にも値をセットする.
	(Thanks to yasufu-i@is.aist-nara.ac.jp)
	
	* src/io.c (yio_select_do, yio_other_block_do): link_to_io_queue() 
	の呼び出しで, 構造体の初期化していないメンバ(fd)を使用していた. これ
	は結局, link_to_io_queue()でも使っていないが, とりあえず常に 0 を渡
	すように修正. (Thanks to yasufu-i@is.aist-nara.ac.jp)

1998-09-25  Kota ABE  <k-abe@kuroneko.media.osaka-cu.ac.jp>

	* src/internal.h: RT版と同期をとった

	* src/sched.c: 不要な変数 _pthread_signal_masked を削除

[PTL2-current-980924 released]

1998-09-24  Kota ABE  <k-abe@kuroneko.media.osaka-cu.ac.jp>

	* src/sysv_syscall.c: linux に対応

	* src/io.c (connect): Solaris2.5.1 での問題を修正
	
	* src/psigmask.c: 新規ファイル. プロセスレベルのシグナルマスクを管理
	  する. 
	
	* src/jump.c: アセンブラ部分を simplify.
	
	* その他, いろいろ :-)
	
1998-09-10  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/debug.c: デバッグ用に dmesg 機構を追加. _pthread_dmesg_write 
	  でリングバッファに書き込み. PDB の dmesg コマンドで表示.

1998-09-09  Kota ABE  <k-abe@media.osaka-cu.ac.jp>

	* src/psigmask.c: 追加. プロセスレベルシグナルマスクを管理するモジュー
	ル)

Fri Sep  4 18:02:04 1998  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* src/sparc_setjmp.S: 追加. NetBSD/sparc の _longjmp がコンテキス
	  トスイッチに使えないため. 

Tue Sep  1 18:22:08 1998  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* src/io.c (readv, writev): 第3引数を unsigned から int に変更. 
	  (Thanks to msaitoh@spa.is.uec.ac.jp)

Fri Aug 14 19:46:45 1998  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* src/sched.c (after_csw): 1st argument を削除. 

	* src/sched.c (after_csw): ブロック中のスレッドに, シグナルが配送
	  された場合, コンテキスト情報がおかしくなるバグを修正. 

Tue Aug 11 10:33:53 1998  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* src/signal.c (_pthread_pendsig): この関数の入口でシグナルをマス
	  クし, 出口でアンマスクする. 

	* src/sched.c (_pthread_pending_job): FLAG_FROM_HANDLER をセットす
	  るのをやめた. これによって, context switch 後にシグナルマスクが
	  クリアされないバグが修正された. 

	* src/pthread.c: 新しい大域変数 _pthread_ptl_initialized を導入.

	* src/mutex.c (_pthread_mutex_lock): mutex owner の取得を critical 
	  region で行っていなかったバグを修正. 

	* src/jump.c (_pthread_call): m68k 版のアセンブラコードを最適化.
	  Alpha 版のアセンブラコードを追加 (yasufu-i@is.aist-nara.ac.jp)

	* src/io.c (readv, writev): (int, struct iovec*, unsigned) から 
	  (int, const struct iovec*, int) に変更.

	* ポインタの値を表示するのに, %p を使うようにした.

	* Util/configure.in: gcc の -Wno-format オプションを使わないように
	  した. 

Tue Aug  4 13:17:11 1998  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* src/cond.c: スレッドが pthread_cond_wait() 中にシグナルを受信し, 
	  再び pthread_cond_wait() するときに, mutex を unlock していない
	  バグを修正. (Thanks to yasufu-i@is.aist-nara.ac.jp)

	* src/signal.c (deliver_signal_sub): アクションが SIG_DFL のシグナ
	  ルを受信して, 自分自身に再送した後, シグナルペンディングセットか
	  ら取り除いていなかったバグを修正. (Thanks to
	  yasufu-i@is.aist-nara.ac.jp)

	* src/sysv_syscall.c: どの OS でも, _ 付きのシステムコールを定義す
	  るように変更. 

	* src/internal.h: 危険領域を保護する変数を volatile int から 
	  volatile sig_atomic_t に変更.

	* Util/configure.in: sig_atomic_t のテストを行う. 

	* sample/bench.c: -condbroadcast_nowaiter でデフォルトのスレッド数
	  を 10000000 個にしていたバグを修正 (yasufu-i@is.aist-nara.ac.jp) 

Fri Jul 31 14:28:21 1998  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* sample/*.c: cleanup sources (msaitoh@spa.is.uec.ac.jp).

	* sample/GNUmakefile: add -Wall flag (msaitoh@spa.is.uec.ac.jp).

	* include/sys/pthread-after.h (nanosleep): #define sleep した後,
	  #undef してしまっていたバグを修正.

	* src/jump.c (_pthread_call): SPARC で NO_UNDERSCORE の場合をチェッ
	  クする (msaitoh@spa.is.uec.ac.jp)

Mon Jul 27 02:22:39 1998  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* Linux-2.0.32 (Red Hat Linux 5.0) で動作するように修正. 

Sat Jul 25 21:50:33 1998  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* src/jump.c: #define LONGJMP_BOTCH の場合でも再びコンパイルできる
	  ようにした.

Fri Jul 24 13:27:11 1998  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* src/sleep.c (usleep): 返り値の型を void から int に変更

	* configure, Makefile 関係の整理

	* システムコールの名前の付け替え部分を Alternate System Call
	  Library (libaltsys) として独立させた. 

Thu May 14 13:11:22 1998  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* src/arch.h.in: 削除

Wed May 13 20:00:27 1998  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* Util/configure.in: gettimeofday() の引数が一つの場合 #define
	  GETTIMEOFDAY_1ARG する. 

	* src/signal.c (_pthread_signal_init): SIGEMT をチェックするつもり
	  で SIGSYS をチェックしていたバグを修正. その他, 細かい間違いを修
	  正. 

	* src/jump.c (_pthread_call): MIPS: position independent code のた
	  めに, R25 でジャンプするように変更 (NEWS-OS6 対策)

Tue May 12 14:20:49 1998  Kota ABE  <k-abe@mediasv.media.osaka-cu.ac.jp>

	* libaltsys (alternative system call library) を使うように変更. 

	* src/sched.c (_pthread_link_to_run_queue): runnable thread が1つ
	  しかない時に thread を作成した後, voluntary context switch が起
	  きないと, interval timer が停止したままのため, 作成したスレッド
	  が起動しないというバグを修正. run queue に投入した時点で _
	  pthread_itimer_start_or_stop() を呼び出すように変更. 

Mon Apr 27 21:14:30 1998  Kota ABE  <k-abe@mediasv.media.osaka-cu.ac.jp>

	* src/io_sysv.c : void* を _pthread_(const_)any_t に変更.

[PTL2-current-980325-patch#3 released]

Thu Apr 23 15:07:43 1998  Kota ABE  <k-abe@mediasv.media.osaka-cu.ac.jp>

	* src/timer.c (_pthread_time_queue_link): EVENT_ALARM が他のイベン
	  トと重複する場合, assertion failed となるバグを修正. (Thanks to
	  senda@ic.rdc.ricoh.co.jp)

[PTL2-current-980325-patch#2 released]

Wed Apr  8 20:45:52 1998  Kota ABE  <k-abe@mediasv.media.osaka-cu.ac.jp>

	* Util/makedist, Makefile, Util/Makefile.in: distribution を作ると
	  きに Makefile, Util/Makefile.in から autoconf, autoheader 関連を
	  コメントアウトする. (Thanks to msaitoh@spa.is.uec.ac.jp)

[PTL2-current-980325-patch#1 released]

Wed Mar 25 18:18:06 1998  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* src/jump.c (_pthread_call): current-980325 の修正で,
	  NO_UNDERSCORE の判定が逆というバグを修正 (Thanks to
	  senda@ic.rdc.ricoh.co.jp)

	* src/io_sysv.c ({un,}set_nowait_sem): static を追加

	* SYSV semaphore のテストプログラム sample/sysvsem.c を追加

[PTL2-current-980325 released]

Wed Mar 25 16:02:01 1998  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* src/spec.h: __NetBSD__ なら #define HAVE_ANSI_HDRS する. 

	* Util/renamesym.pl: exit を置換するときに atexit() を置換しないよ
	  うにした. 

	* src/exit.c: EXIT, X__EXIT のプロトタイプ宣言を追加.

	* Util/configure.in: 現在は使用していない aioread のチェックを外し
	  た

	* src/jump.c (_pthread_jump): mips 版で #ifdef NO_UNDERSCORE する
	  ように変更 (NetBSD のため)

Tue Mar 24 18:39:53 1998  Kota ABE  <k-abe@mediasv.media.osaka-cu.ac.jp>

	* SYSV message queue/semaphore パッチをマージ (Thanks to
	  senda@ic.rdc.ricoh.co.jp)

	  追加 API: msgsnd(), msgrcv(), semop(), pthread_ualarm_np().
	  追加ファイル: io_sysv.c

	* SYSV message queue のテストプログラム sample/sysvmsgq.c を追加.

	* Util/configure.in: add int32_t check.

	* src/alarm.c (pthread_alarm_np): pthread_ualarm_np() を呼び出すよ
	  うに変更

[PTL2-current-971113-patch#1 released]

Tue Dec  9 20:32:06 1997  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* src/io.c (forward_completed_iovec): writev(), readv() が途中でブ
	  ロックする場合に, 書き込み/読み込み位置の調整をミスする場合があ
	  るバグを修正. 

[PTL2-current-971113 released]

Wed Nov 12 17:33:31 1997  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* src/timer.c (_pthread_time_queue_unlink): タイマーイベントが一つ
	  しかないときに, そのイベントを削除すると, 稀に無限ループするバグ
	  を修正.

	* doc/manual.texi: pthread_{,mutex_,cond_}getname_np の説明を修正.

Mon Nov 10 12:50:41 1997  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* src/pthread.c: 変数 _Pthread_pending_job を 
	  _Pthread_pending_job_csw, _Pthread_pending_signal, 
	  _Pthread_pending_job_alarm に分離

	* src/timer.c: 新規ソースファイル. sched.c から内部タイマ処理を分
	  離.

Fri Nov  7 16:18:55 1997  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* src/sched.c: 使用されていない変数 _Pthread_timer_interval を削除 

Tue Nov  4 19:05:58 1997  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* src/sched.c (ITIMER_STOP): ITIMER_STOP の #ifdef 間違いの修正
	  (RT の #define の有無の判定が逆)

Fri Oct 31 19:26:20 1997  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* src/inline.c (_pthread_table_get_body): errno をセットしないよう
	  に変更.

	* src/table.c (_pthread_table_put_item): errno をセットしないよう
	  に変更.

	* src/cond.c (pthread_cond_init): 指定した cond attr が存在しない
	  場合に, ENOMEM を返していたバグを修正 (->EINVAL)

	* src/table.c (_pthread_table_get_type): 使用されていないので削除.

	* src/pthread.c (pthread_getname_np): errno を使わないようにインタ
	  フェースを変更. 
	* src/cond.c (pthread_cond_getname_np): 同上.
	* src/mutex.c (pthread_mutex_getname_np): 同上.

	* src/inline.c (_pthread_pq_has_waiter): 新関数. キューに待機スレッ
	  ドが存在するかを返す. 優先度キューの数え上げが定数時間でなくなっ
	  たため. これを使うように pthread_{mutex,cond}_destroy(),
	  pthread_exit() を修正.

	* src/inline.c (_pthread_pq_*): 新しいデータ構造に合わせて修正.

	* include/sys/types.h(struct _pthread_prio_queue): 構造体のサイズ
	  が優先度の数に影響されないように変更. サイズが 268 byte から 4
	  byte に. これによって Mutex, Condition Variable 等のサイズが減少
	  する. 
	  
[PTL2-current-971020-patch#2 released]

Wed Oct 29 16:58:47 1997  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* src/pthread.c (_pthread_destroy): all queue の最初のスレッドを 
	  destroy すると, SIGSEGV するバグを修正. (Thanks to
	  tatumoto@ics.es.osaka-u.ac.jp)

	* sample/philosopher.c (main): pthread_exit() する前に 
	  pthread_detach() する. 

	* sample/move-box.c (main): pthread_exit() する前に 
	  pthread_detach() する.

[PTL2-current-971020-patch#1 released]

Mon Oct 27 19:45:00 1997  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* src/debug.c (debug_write): デバッグ用 write(). シグナルをマスク
	  して, File Descriptor に書き込めるまでループする.

	* src/signal.c (signal_cache_target): _Pthread_all_queue から全ス
	  レッドを辿るように修正

	* src/debug.c (pdb_thread): _Pthread_all_queue から全スレッドを辿
	  るように修正

	* src/pthread.c (pthread_create, _pthread_destroy):
	  all.{next,prev} を扱うように修正.

	* src/internal.h(struct _pthread_tcb): Run queue のメンバ名を 
	  run.{next,prev} に変更.  全スレッドを繋ぐメンバ all.{next,prev}
	  を追加. _Pthread_all_queue から新しい順にリンクされる.

Wed Oct 22 11:06:49 1997  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* include/unistd.h: #define _POSIX_THREAD_PRIO_INHERIT 等の前に 
	  #undef しておく. native thread 対策.

	* doc/manual.texi (How to get the latest PTL): URL を変更

[PTL2-current-971020 released]

Mon Oct 20 14:03:56 1997  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* include/signal.h: #ifdef NO_POSIXSIG_RENAMING を削除

	* Util/stk-grow-dir.c: #define NO_POSIXSIG_RENAMING を削除

	* PDB に ps コマンドで, イベント待ちスレッドの
		API呼び出し元ファイル名,
		行番号
		関数名(gcc の場合)
	  が表示できるように改良.

	  これに伴い, スケジューリング情報は ps -sched で表示するように修正.

	* PDB の危険領域を保護するように修正

	* src/sched.c(_pthread_block) にファイル名, 関数名, 行番号の引数を
	  追加. 全ての呼出側を修正.

	* include/pthread.h 等で, 以下のような修正を加える

		# define pthread_mutex_lock(mutex)
		_pthread_mutex_lock(mutex, __FILE__, __FUNCTION__, __LINE__)

	* スレッドの名前を変更
	    アイドルスレッド [IDLE]
	    初期スレッド [INITIAL]
	    I/O スレッド [I/O]

	* src/internal.h: struct tcb に block.{file,func,line} を追加.

Fri Oct 17 18:22:50 1997  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* sample/udp_echo.c: UDP のサンプルプログラムを追加.

Thu Oct 16 14:38:49 1997  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* include/sys/socket.h: sendto(), sendmsg() のプロトタイプ宣言を追
	  加.

	* src/io_udp.c: sendto(), sendmsg() の追加. 

	* include/sys/pthread-{before,after}.h: sendto, sendmsg を追加.

	* Util/make-renamed.pl: sendto, sendmsg を追加.

	* Util/acconfig.h: sendto, sendmsg を追加.

	* Util/configure.in : sendto, sendmsg のチェックを追加.

	* src/io.c (fd_nonblock): SunOS4 で, SOCK_DGRAM ソケットに対して 
	  ioctl(FIONBIO) してもノンブロックI/Oにならない(?)ことがわかった
	  ので, fcntl(FNDELAY) も行うように修正した.

	* src/io.c (socket): SOCK_DGRAM に対しても, ノンブロックI/Oを使う
	  ように修正. (何が問題だったのか忘れてしまった)

	* src/mutex.c (pthread_mutex_lock): PTHREAD_MUTEX_INITIALIZER を使っ
	  て初期化された Mutex に対する最初の操作が pthread_mutex_lock() 
	  だとデッドロックするバグを修正.

	* include/pthread.h (_PTHREAD_MUTEX_INIT_MAGIC): 値を 0xffffffff 
	  から 0xff0ABE01 に変更 :-)

	* include/pthread.h (_PTHREAD_COND_INIT_MAGIC): 値を 0xffffffff か
	  ら 0x01ABE0ff に変更 :-)

	* src/io.c: recv(), send(), recvfrom(), recvmsg() を io_udp.c に分
	  離

	* src/io.c(_pthread_io_request): yio_request() から関数名を変更.
	  全ての呼び出し側を修正

Wed Oct 15 17:55:23 1997  Kota ABE  <k-abe@mediasv.media.osaka-cu.ac.jp>

	* sample/network.c: シグナルを sigwait で扱うように修正.

	* sample/*.c : 全てのサンプルプログラムを Solaris2.5 の native
	  pthread でコンパイルできるように修正.

	* src/debug.c (pdb_broadcast): PDB の broadcast (対話的に
	  pthread_cond_broadcast() する) 機能を使えるようにした. 

	* 昔の名残で PDB 内部で Pthread API のエラーを errno で取得してい
	  たのを返り値から取るように修正.

[Patch#3 released]

Wed Oct  1 19:03:07 1997  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* src/sched.c (_pthread_pending_job): _Pthread_losttick に関するコ
	  メントを削除.

	* src/pthread.c: 使用されていない変数 _Pthread_losttick を削除.

	* src/mutex-attr.c: pthread_mutexattr_get*() の第1パラメータに 
	  const を付けた.

	* src/thread-attr.c: pthread_attr_get*() の第1パラメータに const 
	  を付けた.

	* include/pthread.h: pthread_attr_get*(),
	  pthread_mutexattr_get*() の第1パラメータに const を付け忘れてい
	  たバグを修正.

Mon Sep  1 11:39:03 1997  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* src/sched.c (_pthread_dispatcher): itimer_set() への引数の間違い
	  を修正.

Fri Aug 15 20:20:07 1997  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* src/pthread.c (pthread_join): 既に pthread_exit しているスレッド
	  に対して pthread_join した時に, 領域が開放されない(暗黙に detach 
	  されない)バグを修正.

[Patch#2 released]

Thu Aug 14 16:42:30 1997  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* src/sched.c (ITIMER_SET): inline 関数 (itimer_set) へ変更. 
	  ・デバッグ用の gettimeofday() が残っていたのを削除. 
	  ・この関数内で Intr_next, Intr_period を設定するように修正. 
	  ・10msec 未満のタイマーをセットしようとすると assertion failed 
	    となるバグを修正

	* src/sched.c (_pthread_time_queue_unlink): キューの先頭のイベント
	  を削除するときに, そのイベントの実行時刻が既に過ぎていた場合,
	  インターバルタイマ(setitimer) の設定をミスするバグを修正.

	* src/sched.c (timespec_near_equal): 返り値で, 時刻を比較した結果
	  まで返すように修正. 関数名を timespec_near_cmp() に変更. 

	* src/sched.c (_pthread_dispatcher): SIGALRM を受信した時に, 実行
	  すべきイベントが存在せず, 次のイベントまでの時間が, 次に SIGALRM 
	  を受信する時刻よりも前だった場合に, インターバルタイマーの設定を
	  誤るバグを修正.

	* src/sched.c (_pthread_time_queue_act): 第1引数(immediate_only)は
	  0でしか呼ばれていないので削除. 呼出し側を修正.

[Patch#1 released]

Fri Aug  1 18:29:45 1997  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* Util/Makefile.in (COMMON_HDRS): $(includedir)/sys/time.h を追加

	* src/io.c creat(): ANSI Cで, mode_t が short のときにプロトタイ
	  プ宣言と矛盾するのを修正.

	* include/*.h: 全てのヘッダファイルで, 
		#ifdef __PTL_ALREADY_RENAMED_XXXX_H
		#include <sys/pthread-before.h>
		#undef __PTL_ALREADY_RENAMED_XXXX_H
		#else
		#include <sys/pthread-after.h>
		#endif
	  を, ファイルの末尾に移動. これをしないと BSDI/2.1 でコンパイルで
	  きない.

	* reentrant/mktemp.c: getpid() 等の宣言を削除.

[PTL2-current-970728 released]

Mon Jul 28 16:57:52 1997  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* POSIX 1003.1c ベースに変更

	* ログを取っていないので省略

Sat Jul 12 17:16:09 1997  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* include/time.h: clock_t を二重定義してしまう(このために NEWS-OS4 
	  でコンパイルできない) 問題を修正.

	* Util/arch: NEWS-OS4 と NEWS-OS6 の区別をするように修正.

	* doc/manual.texi: menu の日本語の間違いの修正

Wed Jul  9 11:35:19 1997  Kota ABE  <k-abe@wallaby.media.osaka-cu.ac.jp>

	* さらに多くの変更を加えたので省略

	* CVS tag : PTL-current-970709

Thu Feb  6 16:33:30 1997  Kota ABE  <k-abe@mediasv.media.osaka-cu.ac.jp>

	* 一週間にわたって非常に多くの変更を加えたので省略

Wed Dec 11 15:53:45 1996  Kota ABE  <k-abe@mediasv.media.osaka-cu.ac.jp>

	* Util/Makefile.in, Util/configure.in: BSDI 対応のため修正

Tue Dec 10 17:15:40 1996  Kota ABE  <k-abe@mediasv.media.osaka-cu.ac.jp>

	* sys/signal.h: SunOS4.1.3, 4.1.4 でコンパイルできるように修正
	* include/time.h: timespec の#define, #undef の追加
	* src/debug.c: accept, write, read のプロトタイプをコメントアウト
	* src/pthread.c: 以下のプログラムが正常に動作しないバグを修正

	#include <pthread.h>
	#include <stdio.h>

	void main(int argc, char *argv[])
	{
	  pthread_t tid;
	  
	  pthread_create(&tid, NULL, sleep, 2);
	  pthread_exit(NULL);
	}

Thu Jun 22 00:20:36 1995  Kota ABE  <k-abe@freedom>

	* src/mutex.c (_pthread_mutex_check_left_unlocked): thread が exit 
	  する際に lock している mutex を unlock する. (従来は Warning の
	  み)

Tue Jun 13 01:43:44 1995  Kota ABE  <k-abe@freedom>

	* src/sched.c (_pthread_unlink_from_run_queue): デバッガのサポート
	  のため, run queue から外す際には理由を設定するようにした.

Mon Jun 12 00:29:46 1995  Kota ABE  <k-abe@freedom>

	* src/debug.c (do_pdb): PDB (PTL debugger) のサポート開始

	* src/sched.c (_pthread_time_queue_first_time): Critical region の
	  チェックをしないように修正 (PDB のため)

	* reentrant/strtok.c (strtok_r): 文字列の最後をデリミタとみなさな
	  いバグを修正.

Thu Jun  8 00:52:56 1995  Kota ABE  <k-abe@freedom>

	* Util/ptl-gcc : 作成. PTL のプログラムを楽にコンパイルするための
	  簡単なスクリプト. 

	* Util/Makefile.in (install): $(dest_bindir) へ ptl-gcc をインストー
	  ルする.

Sun Jun  4 22:53:11 1995  Kota ABE  <k-abe@freedom>

	* src/signal.c: シグナルハンドラの違い(BSD, SVR4)を 
	  _pthread_signal_handler() で吸収する.

	* src/signal.c (_pthread_pendsig): Critical region 中に受け取った
	  シグナルをスレッドに配送する場合に struct siginfo::code が正しい
	  値になるようにした.

Tue May 30 19:21:49 1995  Kota ABE <k-abe@midsys314>

	* src/signal.c (_pthread_signal_handler): critical section を抜け
	  出ようとする際にシグナルが割り込むと assertion failed となるバグ
	  の修正 

	* Util/stk-grow-dir.c (psigstack): struct sigaltstack のメンバチェッ
	  クが抜けていたので修正

■ PTL-current-0530 RELEASED

Tue May 30 00:51:57 1995  Kota ABE  <k-abe@freedom>

	* src/sigeml.c: !POSIXSIGFUNC の場合にコンパイルに通らないバグを
	  修正.

Mon May 29 00:44:10 1995  Kota ABE  <k-abe@freedom>

	* Util/configure.in: struct sigaltstack に ss_base メンバがあれば
	  #define SIGALTSTACK_SS_BASE する.

	* Util/Makefile.in: インクルードディレクトリ名 SYSTEM.gcc を gcc 
	  へ, SYSTEM を os へ変更.

	* SIGIO_NONRELIABLE を POLL_WHEN_SIGALRM に変更

	* src/sched.c (_pthread_idle_thread): 「idle 時には select で待つ」
	  を default とした.

	* reentrant/stdio-lock.c (_mx_init): ファイルデスクリプタ単位の 
	  lock テーブルを明確に初期化するようにした.

Thu May 25 00:27:03 1995  Kota ABE  <k-abe@freedom>

	* src/io.c (_pthread_io_init): pre-open されているファイルデスクリ
	  プタが tty の場合, 一度 close して open しなおす. これによって, 
	  他のプロセスが使用しているデスクリプタをノンブロッキングモードに
	  することを避ける事ができる.

	* src/io.c (read, readv): 要求されたバイト数を読めなかった場合でも, 
	  何か読めたらリターンする.

Sun May 21 01:11:34 1995  Kota ABE  <k-abe@freedom>

	* src/sched.c (_pthread_dispatcher): _pthread_io_wait_lock を呼ぶ
	  のは #define SIGIO_NONRELIABLE の時のみとした

	* src/io.c (_pthread_io_nonblock): SIGIOを受信するプロセスを属する
	  プロセスグループとしてしまっていたバグを修正

Sat May 20 14:41:46 1995  Kota ABE  <k-abe@freedom>

	* src/io.c (_pthread_io_nonblock): デスクリプタを Asynchronous
	  mode にするために fcntl(fd, FIOASYNC) と ioctl(fd, FIOASYNC) の
	  両方を行う.

■ PTL-current-0518 RELEASED

Thu May 18 00:24:20 1995  Kota ABE  <k-abe@freedom>

	* src/sched.c, src/io.c: Idle 時, SIGALRM 時に I/O をポーリングす
	  る際に IO_mutex をロックする. SIGALRM 時の I/O のポーリングは 
	  IO_mutex がロックされていれば行わない. (デッドロック回避のため)

	* src/io.c: 暫く SunOS, Linux でも #define TTYOUT_NONASYNC す
	  る. (TTY 出力のデッドロック回避のため)

	* src/mutex.c (pthread_mutex_trylock): BEGIN_CRITICAL の位置が間違っ
	  ていたのを修正.

	* src/signal.c (do_signal_action): 不要なシグナルスタックサイズの
	  変更を削除.

Wed May 17 22:48:45 1995  Kota ABE  <k-abe@freedom>

■ PTL-current-0517 RELEASED

Tue May 16 00:47:30 1995  Kota Abe  (k-abe@darkstar)

	* include/setjmp.h: linux では #define _setjmp __setjmp する. 
	  PTL の sigsetjmp マクロは内部で _setjmp を利用しているが, 
	  linux の _setjmp はマクロで最終的に __setjmp に展開されるため. 

	* src/longjmperror.c: 作成. Linux では longjmperror() が存在し
	  ないため. 

Mon May 15 01:52:40 1995  Kota Abe  (k-abe@darkstar)

	* src/io.c (_pthread_io_wait): Linux は SIGIO が送られない場合
	  があるようなので, SIGALRM 時と idle 時にデスクリプタをポール
	  する. 

	* src/io.c (_pthread_io_nonblock): Linux は fcntl(fd, F_SETFL,
	  FASYNC) は動作するが, ioctl(fd, FIOASYNC, ...) は動作しない
	  ようなので, 動作するように変更. 

Sat May 13 14:51:14 1995  Kota ABE  <k-abe@freedom>

	* include/setjmp.h: #define siglongjmp _pthread_siglongjmp 

	* src/setjmp.c: 作成

	* src/setjmp.c (_pthread_siglongjmp): siglongjmp をマクロから関数
	  へ変更.

	* src/io.c: Backgroud process からの tty 入出力のための Condition
	  Variable をデスクリプタ単位からプロセス単位に変更

	* src/io.c: 起動時にオープンされているファイルデスクリプタが 0, 1,
	  2 だけであるという仮定をやめた.  起動時に全てのデスクリプタがオー
	  プンされているかどうかをチェックする.

	* src/io.c (_pthread_io_init): 初期デスクリプタ数をハードリミット
	  からソフトリミットで得るように変更. 実行中に setrlimit を用いて
	  デスクリプタ数を増加させることは禁止.

	* src/debug.c (_pthread_debug_perror): 不要のため削除

Fri May 12 00:29:48 1995  Kota ABE  <k-abe@freedom>

	* sample/move-box.c: -n option で箱の数(すなわちスレッドの数)を指
	  定できるようにした.

	* src/io.c: select() は read()/write()よりも優先度が低くなった.
	  SIGIOが配送された場合, まず read()/write() でブロックしているス
	  レッドが wakeup する. どのスレッドも read()/write() でブロックし
	  ていないデスクリプタが I/O 可能となった場合に select() がリター
	  ンする可能性がある.

	* src/io.c: SunOSでの検証ができないため, SunOSの Asynchronous I/O 
	  サポートのコードが使われないように #undef HAVE_AIOREAD を加えた.

Sun May  7 23:56:17 1995  Kota ABE  <k-abe@freedom>

	* src/cond.c (pthread_cond_timedwait): 呼ばれた際に既に指定された
	  時刻を過ぎていたら errno = EAGAIN で -1 を返す.

Thu May  4 03:35:06 1995  Kota ABE  <k-abe@freedom>

	* src/io.c (close): close に成功したら, close されたデスクリプタで 
	  wait (eg. read/write) しているスレッドをアンブロックするように変
	  更.  read/write 等は, -1 (errno = EBADF) がリターンする.
	  ※ 現在のところ select はリターンしない.

	  src/io.c (read, readv): システムコールの read, readv が失敗した
	  場合は即座にリターンする.

Thu Apr 27 00:38:30 1995  Kota ABE  <k-abe@freedom>

	* src/sched.c (stop_itimer): インターバルタイマが既に停止 
	  (ITIMER_STOP) している場合まで, インターバルタイマを 
	  ITIMER_STOPPING 状態に遷移させていたバグを修正.

	* src/mutex.c (pthread_mutex_init): Mutex をキューに繋げる操作を
	  クリティカルリージョンに入れた.

Fri Apr 21 01:46:18 1995  Kota ABE  <k-abe@freedom>

	* src/internal.h, signal.c: Critical region の排他処理を変更.

Thu Apr 20 22:43:06 1995  Kota ABE  <k-abe@freedom>

	* 再び CVS の管理を最初から始めた.

Mon Apr 17 00:41:17 1995  Kota ABE  <k-abe@freedom>

	* include/setjmp.h (sigsetjmp): sigjmpbuf にスレッドIDを記憶する.

	* include/setjmp.h (siglongjmp): sigjmpbuf のスレッドIDと,
	  siglongjmp を実行したスレッドが異なっていれば -1 を返す.

	* include/setjmp.h (sigsetjmp): 実行時に cleanup handler の先頭を
	  記憶する.

	* include/setjmp.h (siglongjmp): sigsetjmp でセーブされた cleanup
	  handler が出現するまで pthread_cleanup_pop_f_np() を実行する.

	(上記の変更により, select() を siglongjmp から抜け出しても 
	select() の cleanup handler が実行されるため, 内部矛盾が発生しない
	ようになった.

	(sigsetjmp と cleanup handler の関係は POSIX では implement
	dependent である)

Thu Apr 13 00:23:52 1995  Kota ABE  <k-abe@freedom>

	* src/signal.c (raise): kill システムコール経由で実行するように
	  変更.

	* src/signal.c (do_signal_action): シグナルハンドラ実行の際の, シ
	  グナルハンドラのためのスタック領域残量チェックは Initial Thread 
	  の場合は行わないように変更.

	* src/pthread.c (_pthread_setscheduler): run 状態ではないスレッド
	  のスケジューラを変更する場合は, run queue に戻さない.

Mon Apr 10 23:06:39 1995  Kota ABE  <k-abe@freedom>

	* pthread.c: _pthread_init(): initial thread のシグナルマスクをク
	  リアする

Sun Apr  9 15:58:48 1995  Kota ABE  <k-abe@freedom>

	* 内部の単純化のため, idle 時に実行する idle thread を復活させた.

	* Sun LWP 互換のメッセージパッシング機構 (pthread_msg_send_np,
	  pthread_msg_recv_np, pthread_msg_reply_np) を廃止.
	  同等のことは Condition Variable を使って実現できるため.

Sat Apr  8 16:25:20 1995  Kota ABE  <k-abe@freedom>

	* スレッドのスタックを拡張できる場合に (#define
	  AUTO_STACK_EXPANSION の場合),
	  extern int pthread_stack_expansion_np が 0 ならば, スタックの拡
	  張を行わない.  拡張できない場合はこの変数は意味が無い.  この変数
	  は, プログラムの実行前に値をセットしておく必要がある.  ファイル
	  スコープで int pthread_stack_expansion_np = 0; 等としておく必要
	  がある. 関数中で値を変えてはならない.

	* pthread-include.h, pthread-paths.h を削除.  標準ヘッダファイルの
	  インクルードには <Include/...> を用いる. (Include はシンボリック
	  リンク)

	* SIG_SIGWAIT_NP と宣言されたシグナルが, sigwait()を実行していない
	  スレッドに配送される可能性があるバグを修正. (重要)

Tue Apr  4 00:51:17 1995  Kota ABE  <k-abe@freedom>

	* src/stack.c: validate_shm(): 共有メモリを attach するアドレスを
	  テストする.  FreeBSD では, プロセス(の大きさ?)によって共有メモリ
	  を attach するアドレスがかわってくるため, stk-grow-dir で調べた
	  共有メモリ attach アドレスは役に立たない.

	* src/stack.c: スタックを自動拡張する際に, スタックの最大サイズに
	  達していないかどうかをテストする.

	* src/spec.h: MAX_STACK_SIZE (スレッドスタックの最大サイズ(伸び切っ
	  た大きさ) を定義した (default 64Kbyte)

Sun Apr  2 22:26:27 1995  Kota ABE  <k-abe@freedom>

	* src/io.c: exit() も PTL でオーバーライドする. (SunOS 対策)

	* Util/configure.in: <signal.h> or <sys/signal.h> で
	  sigaction() がプロトタイプ宣言されているならば
	  #define PROTO_SIGACTION する.

	* include/signal.h: PROTO_SIGACTION の場合は sigaction() のプロト
	  タイプ宣言を省略する (conlict しないように)

	* OS が struct sigaction を提供している場合は, それをそのまま使用
	  する.

	* Util/configure.in: <signal.h> or <sys/signal.h> で
	  struct siginfo が宣言されているならば
	  #define HAVE_SIGINFO する.

Thu Mar 30 22:52:58 1995  Kota Abe  (k-abe@darkstar)

	* Util/configure.in: perl script は $(PERL) で起動する. 

Thu Mar 30 00:18:33 1995  Kota Abe  (k-abe@darkstar)

	* Linux (1.1.59) へ移植.

	* sysv_syscall.c: 作成.  _ 付きの system call interface
	  function を override する.  (__read 等)

	* configure.in: _ 付きの system call interface function の存在
	  チェックを行う.

Sun Mar 26 21:52:03 1995  Kota Abe  (k-abe@darkstar)

	* Util/stk-grow-dir.c: SIGSYS がない OS に対応. 

	* Util/stk-grow-dir.c: sigstack, sigaltstack の両方がなくても
	  エラーとしない. 

Fri Mar 24 00:42:18 1995  Kota ABE  <k-abe@freedom>

	* Util/configure.in: sigset_t を long として取り扱えるならば 
	  SIGSET_T_LONG を define する.

	* src/sigeml.c: sigset_t 関連関数を src/inline.c へ移動.
	  SIGSET_T_LONG ならば sigset_t の取り扱いを高速化する.

Wed Mar 22 23:50:17 1995  Kota ABE  <k-abe@freedom>

	* FreeBSD2.0R で動作するように変更.

	* 内部でのシグナルインタフェースを POSIX 仕様に統一. BSD のシグナ
	  ルインタフェースしか使えない場合は sigeml.c で POSIX 関数をエミュ
	  レートする.

	* GNU autoconf v2.1 を使用するように configure 関連を変更.

	* A.$(ARCH)/include/sys/pthread-extsym.h: config.status によって生
	  成するように変更.

	* include/signal.h: Util/gen-signal-h.pl が生成するのをやめ, 内部
	  で本来の <signal.h> を include するように変更.

	* include/sys/signal.h: ../signal.h へのシンボリックリンクに変更.

	* Util/gen-signal-h.pl: 削除.

	* reentrant 関数の Makefile を分離.

	* 共有メモリ関連のテストを行う際に SIGSYS をトラップしておく 
	  (FreeBSD 対策)

	* Util/stk-grow-dir.c: MINSIGSTKSZ が #define されているならばその
	  サイズでシグナルスタックサイズをテストする (FreeBSD)


■ BETA1.4pre1a RELEASED

	* Thread specific data のバグ修正.

Thu Oct 20 11:57:15 1994  ABE Kota  (k-abe@midsys311)

	* src/signal.c (sigaction): SIG_IGN を設定した時に, pending されて
	  いた全てのシグナルをクリアしていたのを, 指定したシグナルだけクリ
	  アするように変更.

■ BETA1.4pre1 RELEASED

Sun Aug 28 12:52:30 1994  Kota ABE  (k-abe at saba)

	* Util/stk-grow-dir.c: 共有メモリセグメントの Attach address 
	  及び 2つの共有メモリセグメント間の間隔を調べる. (OSF/1 対策)

	* OSF/1 では, src/internal.h で SA_SIGINFO を #undef する.  OSF/1 
	  ではシグナルハンドラへの引数を, BSD タイプと SVR4 タイプのい
	  ずれかを選べる. libc でコンパイルすると BSD タイプとなるため. 
	 
Tue Aug 23 00:27:00 1994  Kota ABE  (k-abe at saba)

	* SVR4 パッチを import. 

Sat Jul 16 20:13:22 1994  Kota ABE  (k-abe at saba)

	* src/signal.c: sigsuspend(): 必ず assertion にひっかかるバグを修
	  正. 

Sat Jun 25 15:32:03 1994  Kota ABE  (k-abe at saba)

	* stk-grow-dir.c: 上方伸張のスタックの場合, AUTO_STACK_EXPANSION 
	  を #define しないように変更.

■ BETA1.3 RELEASED

Thu Mar 24 19:14:53 1994  Kota Abe  (k-abe at saba)

	* include/stdio.h: _proof_fread, _proof_fwrite のプロトタイプ宣言
	  のバグを修正.

	* io.c: write(): TTYOUT_NONASYNC の場合:: tty への出力が
	  EWOULDBLOCK になる場合, 10 回トライした後は usleep で 100msec 待
	  ちながらトライする.

Tue Mar 22 23:57:48 1994  Kota Abe  (k-abe at saba)

	* io.c: write(): #define TTYOUT_NONASYNC すると, BSD UNIX の tty
	  output のバグを回避する. ただし, tty write によってブロックする. 

Fri Mar 18 17:46:21 1994  Kota Abe  (k-abe at saba)

	* sched.c: _pthread_context_switch(): スタックを自動拡張できないアー
	  キテクチャの場合は, スレッドのスタート時にシグナルスタックを変更
	  しない. 

	* jump.c: _pthread_call(): i386 用のコードを追加(未試験). 
	  デフォルトではこのコードは使用されない. 
	  (thanks to iwai@yachi-lab.sys.es.osaka-u.ac.jp)

Sun Mar  6 02:09:00 1994  Kota Abe  (k-abe at saba)

	* jump.c: _pthread_call(): 高速化のため SPARC, MIPS, M68K 用のアセ
	  ンブラコードを用いたルーチンを導入.

Tue Feb 22 21:22:44 1994  Kota Abe  (k-abe at saba)

	* include/sys/pthread-paths.h: PATH_ERRNO_H を追加.
	  Util/gen-errno-h: <errno.h> を直接 include しないように変更. 

Wed Feb  9 22:05:57 1994  Kota Abe  (k-abe at saba)

	* spec.h: INITIAL_SIGSTACKSIZE を 8192 bytes に変更.

	* stack.c, inline.c: 高速化のため _pthread_sigstack() を inline 関
	  数に変更.

	* mutex.c: 高速化のため _pthread_log() はログを取らない場合に呼ば
	  ない. 

Sun Jan 23 16:48:54 1994  Kota Abe  (k-abe at saba)

	* signal.c: _pthread_pendsig(): ログに PLOG_SIGNAL_ARRIVAL を出力
	  していなかったバグを修正.

Wed Jan 19 17:03:50 1994  Kota Abe  (k-abe at saba)

	* stack.c: _pthread_sigsegv_handler: SIGSEGV 時に, ログをフラッシュ
	  するように変更. 

■ BETA1.2 RELEASED

Thu Jan 13 16:43:45 1994  Kota Abe  (k-abe@saba)

	* signal.c: _pthread_pendsig(): ペンディングされたシグナルの動作が,
	  SIG_SIGWAIT_NP の場合, 無視されるバグを修正. 

	* BSD4.4 をサポート. sigstack(2), sigaltstack(2) の違いを隠蔽する
	  ために, struct psigstack を導入し, _pthread_sigstack 関数を用意
	  した. 

	* timespec 構造体の tv_nsec メンバが, ナノセカンドではなく, マイク
	  ロセカンドとして取り扱われていたバグを修正. 

Tue Jan 11 18:05:29 1994  Kota Abe  (k-abe@saba)

	* sched.c: pthread_yield(): 常に存在する最高優先度のスレッドにコン
	  テキストスイッチを行なう. 

	* io.c: fcntl(FASYNC) より ioctrl(FIOASYNC) を優先して使用する. 

	* sched.c: _pthread_dispatcher(): FIOASYNC が使える場合は I/O の 
	  polling を行なわない. 

Mon Jan 10 20:52:10 1994  Kota Abe  (k-abe@saba)

	* Makefile.in, configure.in: <sys/pthread-extsym.h> を生成する. 

	* fakemain2.c 削除, fake_gcc.c, fake_cfront.c: 作成. pthread.h: 変
	  更:: C++ で, 大域変数の constructor が呼ばれる前に _pthread_init 
	  を呼び出す. 

Sun Dec 26 16:01:36 1993  Kota Abe  (k-abe@saba)

	* sched.c: _pthread_context_switch(): スタックあふれチェックは, 安
	  全でないスタックに対してのみ行なう.

Fri Dec 24 02:24:47 1993  Kota Abe  (k-abe@saba)

	* signal.c: 現在実行中でないスレッドにシグナルが配送され, かつ現在
	  実行中のスレッドよりも, シグナルが配送されたスレッドの方がプライ
	  オリティが高く, かつ現在実行中のスレッドが SCHED_FIFO でない場合,
	  すぐにコンテキストスイッチを起こす. 

Sat Dec 18 03:37:38 1993  Kota Abe  (k-abe@saba)

	* DEC OSF/1 のサポート.

	* Makefile.in: fakemain.c をコンパイルする際に $(OLDCC) を使用する.

	* include/sys/timers.h: 作成. 

	* Makefile.in: gcc のオプション -fkeep-inline-functions を外した.

	* io.c: exit() を廃止. I/O の cleanup は _exit() で行なわれるので
	  問題ない筈. (実は OSF/1 では Util/renamesym.pl が exit() に対し
	  てうまく働かなかったため :-)

Tue Dec 14 17:19:00 1993  Kota Abe  (k-abe@saba)

	* log.c, mutex.c: ロックされていない Mutex をロックするときは,
	  PLOG_MUTEX_LOCK_{START,DONE} が同一の時刻となるように修正. 

	* pthread.c: _pthread_destroy() : スレッド終了時に内部のテーブル 
	  (handle -> struct) のエントリが開放されないバグを修正. 

Mon Dec 13 15:33:36 1993  Kota Abe  (k-abe@saba)

	* signal.c: dispatch_signal(): SCHED_FIFO スレッドを実行中の場合は
	  シグナルによってコンテキストスイッチは発生しないように修正. 

	* pthread.c: pthread_join(): detach されているスレッドに対して 
	  pthread_join() を呼び出した場合, errno = EINVAL で -1 を返すよう
	  に修正. 

	* include/*.h: C++ への対応.

Fri Dec 10 20:52:23 1993  Kota Abe  (k-abe@saba)

	* Util/configure.in: mips style の external symbol (先頭に _ が付
	  かない)を使用している場合に, #define NO_UNDERSCORE する. 
 
Thu Dec  9 18:15:36 1993  Kota Abe  (k-abe@saba)

	* fakemain.c: gcc で, main 関数を特別扱いしないように修正.

	* include/*.h: gcc では, #include_next directive は 
	  <sys/pthread-include.h> に閉じ込め, 各 header file は,
	  <sys/pthread-include.h> を #include することによって, 本来の 
	  header file を #include する. これは, gcc 以外の ANSI C が,
	  #include_next に警告するのを防ぐため. 

	* pthread.c: _pthread_destroy(): 初期スレッドのスタックもスタッ
	  クキャッシュに登録してしまうバグを修正. 

	* sched.c: _pthread_context_switch(): #define STACKCHECK されてい
	  る場合には, 呼ばれるたびにスタックの残量をチェックする. 

Wed Dec  8 21:01:39 1993  Kota Abe  (k-abe@saba)

	* mutex.c: pthread_mutex_destroy(): Mutex が見つからない場合は 
	  errno = EINVAL でリターンする. 

Tue Dec  7 16:08:32 1993  Kota Abe  (k-abe@saba)

	* include/sys/pthread-paths.h 作成. original header file の path 
	  を保持する. 

	* log.c: _pthread_log(): バッファをフラッシュする前に, 文字列 
	  "[log flushing]" を挿入する. 

	* log.c: _pthread_log_flush(): ログを取っていない時もバッファをフ
	  ラッシュしようとするバグを修正. 

	* signal.c: シグナルが配送された際に sigwait() しているスレッドが
	  存在し, かつ 現在実行中のスレッドよりも, sigwait() しているスレッ
	  ドの方が高いプライオリティを持っていた場合, コンテキストスイッチ
	  を起こす. 

	* sched.c: _pthread_blocked_yield_from_handler(): 作成. コンテキス
	  トスイッチを行ない, *シグナルマスクをクリアせずに* リターンする. 

Sun Dec  5 21:40:28 1993  Kota Abe  (k-abe@saba)

	* pthread.c: 初期スレッドのためにスタックが割り当てられていたのを
	  修正 (直ちに開放する)

	* stack.c: abort() は SIGKILL でなく, SIGABRT で終了するように変更.

	* internal.h: SIGALL_MASK の値に SIGABRT が入っていたバグを修正. 

	* mutex.c, log.c: Mutex の log を取るように変更. 

	* io.c: OS が aioread(), aiowrite() (非同期 I/O) をサポート
	  している場合 (SunOS), File/Directory からの read/write を非同期
	  に行なうように変更. 

	* io.c: 標準入力を Blocking で使うと, ^D による EOF の入力を認識で
	  きないことが判明したため, Nonblocking に戻した.

Fri Dec  3 14:31:42 1993  Kota Abe  (k-abe@saba)

	* reentrant/ctermid.c: ctermid_r() 作成. 

Thu Dec  2 21:04:40 1993  Kota Abe  (k-abe@saba)

	* Util/acconfig.h: 作成. configure.in, Makefile.in ; XDEFS を廃止.
	  AC_DEFINE を用いて config.h で #define するように変更. 

	* configure.in: sprintf() の返り値の型 (int or char*) をチェックし,
	  macro RETSPRINTFTYPE に定義するように変更. それに伴い ansi.h を
	  変更.

    	* reentrant/{mktemp,tmpnam,tempnam,tmpfile}.c: mktemp(),
	  mkstemp(), tmpnam(), tempnam(), tmpfile() : Net2 のコードをスレッ
	  ド対応に変更して取り込んだ.

Wed Dec  1 14:13:52 1993  Kota Abe  (k-abe@saba)

	* stack.c: static int Pagesize に getpagesize() の結果を記憶してお
	  く. 

	* pthread.c, sched.c: exit したスレッドのスタックは detach されて
	  いなくても直ちに回収する. 

	* stack.c: スタックキャッシュを, スタックの確保法別に分けた. 

	* stack.c: pthread_alloc_stack_cache_np(): AUTO_STACK_EXPANSION の
	  場合は, スレッドシグナルスタックも自動的に確保する. 

	* stack.c: mprotect() システムコールの有効性のチェックのバグを修正.
	  (pagesize に align されていない memory block に対して mprotect()
	  を呼んでいたため, 常に mprotect() が失敗していた)

	* stack.c: 各スタック確保法ごとに関数を分離し, struct Stackprop を
	  通じて呼び出すように変更. 

	* ユーザに要求するスタックの種類を陽に指定させず, 要求するスタック
	  の性質を指定するように変更. <pthread.h> 中の 
	  PTHREAD_STACK_{SHM,REDZONE,HEAP}_NP を廃止. 代わりに 
	  PTHREAD_STACK_{NONE,SAFE,EXTENSIBLE}_NP を追加.
	  thread-attr.c : pthread_attr_setstackalloc_np(),
	  pthread_attr_getstackalloc_np() を廃止. 代わりに 
	  pthread_attr_setstackprop_np(), pthread_attr_getstackprop_np()
	  を作成.

	* configure.in: getpagesize() の有無を調べる. 

Tue Nov 30 22:13:08 1993  Kota Abe  (k-abe@saba)

	* stack.c: pthread_alloc_stack_cache_np(): 作成. 

Thu Nov 25 15:31:41 1993  Kota Abe  (k-abe@saba)

	* cond.c: _pthread_difftime(): 残り時間が負になる場合は残り時間と
	  して 0 を返すように変更. 

	* sleep.c: usleep(): 作成.
	  include/sys/pthread-unistd.h: usleep() のプロトタイプを追加.

Mon Nov 22 17:46:49 1993  Kota Abe  (k-abe@saba)

	* debug.c: _pthread_debug(): 標準エラー出力を Non blocking mode で
	  使用しているために write(2) が全てを出力しない場合を考慮した. 

Sat Nov 20 16:36:28 1993  Kota Abe  (k-abe@saba)

	* log.c: pthread_log_np(): 作成. printf 形式の引数を取り, ログに記
	  録する. 

	* log.c: 作成. 実行履歴を環境変数 PTHREAD_LOG の指すファイル名に記
	  録する. 

Wed Nov 17 18:17:55 1993  Kota Abe  (k-abe@saba)

	* io.c: read(), readv(): 標準入力(fd 0)が端末ならば, ブロッキング
	  モードで使用する. fd 0 から読み込む前に FIONREAD ioctl によって
	  読み込むべきデータがきているかをチェックし, きていなければ read 
	  を実行しない.

	* io.c: 環境変数 PTHREAD_NONBLOCKING_STDIN を廃止. 

	* mutex.c: pthread_mutex_lock() : 初期化されていないと思われる 
	  Mutex をロックしようとした場合, 警告を出力して abort する. 

■ BETA1.1 RELEASED

Mon Nov 15 14:30:15 1993  Kota Abe  (k-abe@saba)

	* ctime.c: localtime_r(), gmtime_r(), asctime_r(), ctime_r() 恥ず
	  かしいバグを修正. 

	* pthread.h : struct timespec のメンバ名の間違いを修正. tv_usec で
	  はなく, tv_nsec. (reported by tomatsu@jaist.ac.jp>

	* stack.c: _pthread_stack_init() : 共有メモリ, mprotect を使えるか
	  どうかチェックする.

	* signal.c: async signal が, 現在実行中でないスレッドに配送される
	  際, そのスレッドが, 「シグナルをアンブロッキングしているスレッド
	  リスト」から外されてしまうバグを修正.

	* signal.c: async signal は, サスペンドされているスレッドには配送
	  されないように修正. 

	* queue.c: _pthread_ring_queue_find_not_susp() 作成. ring queue か
	  らサスペンドされていない任意のスレッドを探す. 

	* io.c : _exit() 作成. 標準入力をブロッキングモードに戻してから終
	  了する. 

Fri Nov 12 23:04:54 1993  Kota Abe  (k-abe@saba)

	* ソースの管理を RCS から CVS に変更. 

	* suspend.c: 作成. スレッドのサスペンド, リジュームのために 
	  pthread_suspend_np(), pthread_resume_np() をサポート.

	* thread_attr.c: pthread_attr_setsuspended_np(),
	  pthread_attr_getsuspended_np() : 作成. 

■ BETA1.0 RELEASED

Fri Nov  5 16:02:44 1993  Kota Abe  (k-abe at saba)

	* io.c: 環境変数 PTHREAD_BLOCKING_STDIN が設定されていれば, 標準入
	  力が端末だった場合, 標準入力を非ブロックモードにしない.
	  background での標準入力からの read() は, プロセス全体をサスペン
	  ドさせる.

Thu Nov  4 18:29:23 1993  Kota Abe  (k-abe at saba)

	* signal.c: sigwait() しているシグナルがネストしたときの処理のバグ
	  を修正.

	* sched.c: longjmpbotch になる条件判定を変更. 

	* stack.c: _pthread_stack_alloc(): 共有メモリを所定の位置に attach
	  出来なかった場合, redzone スタックを確保する. 

Wed Nov  3 17:00:37 1993  Kota Abe  (k-abe at saba)

	* cond.c: pthread_cond_set_name_np(), pthread_cond_get_name_np() 
	  作成. 

	* mutex.c: pthread_mutex_waiters_np() : 作成. Mutex でブロックして
	  いるスレッドの数を返す.

	* io.c: close(): ファイルデスクリプタからクリアする際に IO_mutex 
	  をロックするように変更. 

Tue Nov  2 21:46:04 1993  Kota Abe  (k-abe at saba)

	* io.c: 非ブロック I/O のフラグの使用順位を変更. FIOSNBIO ->
	  FNDELAY(BSD) -> O_NONBLOCK(POSIX)

Mon Nov  1 23:25:44 1993  Kota Abe  (k-abe at saba)

	* configure.in : struct sigcontext に sc_sp メンバが存在するかどう
	  かのチェックを行なう. 

	* stk-grow-dir.c : struct sigcontext に sc_sp メンバが存在しなけれ
	  ば, #define AUTO_STACK_EXPANSION を出力しない. 

	* stack.c : struct sigcontext に sc_sp メンバが存在しなければ,
	  fault address が unknown となるようにした. 

■ ALPHA1.2 RELEASED

Wed Oct 27 18:23:48 1993  Kota Abe  (k-abe at saba)

	* signal.c : sigwait() : sigwait() 中は, 指定したシグナルの配送を
	  ブロックする. 

	* cond.c : pthread_cond_waiters_np() : 作成. Condition Variable で
	  ブロックしているスレッドの数を返す. 

	* sleep.c : nanosleep() を割り込みポイントにした. 

	* sleep.c : nanosleep() : 返す残り時間が正しくない場合があるバグを
	  修正.

Mon Oct 18 20:08:11 1993  Kota Abe  (k-abe at saba)

	* *.h : C++ へ対応. 

	* fakemain.c : 作成. グローバルコンストラクタが呼ばれる前に,
	  _pthread_init() を呼び出すことで, コンストラクタ中で pthread の
	  関数を使用可能とした. (未確認)

	* renamesym.pl : -u option をサポート. (関数定義ではなく, 関数
	  呼び出しを rename する)

Thu Oct 14 02:29:44 1993  Kota Abe  (k-abe at saba)

	* support hp-ux.

	* alloca.c : GNU emacs distribution よりコピー.

Tue Oct 12 16:07:47 1993  Kota Abe  (k-abe at saba)

	* pthread.c: _pthread_init(): 初期スレッドをキャンセルできないバグ
	  を修正. 

	* signal.c: sigwait() : sigwait() を cancelation point 関数とした.

	* sched.c, signal.c : スレッドがキャンセルされた場合は,
	  FLAG_DO_CANCEL フラグをセットする. 

	* internal.h, configure.in : <alloca.h> に関する宣言を加えた. 

	* internal.h : <stdlib.h> に含まれる exit の宣言が有効とならないよ
	  うにした. 

	* io.c : gcc の拡張機能である auto 変数の構造体の初期化を用いない
	  ようにした.

Fri Oct  8 18:50:35 1993  Kota Abe  (k-abe at saba)

	* pthread.c: pthread_exit() : 終了する際に, unlock していない 
	  mutex があれば, 警告を出力するように修正. 

	* pthread.c: pthread_exit() : cleanup handler の実行が終わってから
	  join しているスレッドを unblock するように変更. 

	* all EXC_EXCCATCH : キャンセルでは EXCCATCH ブロックを実行しない.
	  キャンセル時に実行する関数は cleanup stack に積むようにした. 

	* mutex.c: 全ての Mutex をリストにつなぐようにした. 

	* mutex.c: pthread_mutex_set_name_np(),
	  pthread_mutex_get_name_np() 作成. 

	* 内部で使われる Mutex に pthread_mutex_set_name_np() を用いて名前
	  を付けた. 

	* sched.c : キャンセルされた場合, longjmp() する前に cleanup
	  handler を実行する. 

Thu Oct  7 22:11:11 1993  Kota Abe  (k-abe at saba)

	* io.c: read(), readv() : read したバイト数が, 要求したバイト数よ
	  り少なかった場合は, 全てが read されるまで繰り返す. (ただし tty 
	  を除く)

	* io.c: 高速化のため, ファイルディスクリプタが tty を指すかどうか 
	  (isatty() の結果) をキャッシュしておく.

	* pthread.c: pthread_join() : 対象のスレッドが既に exit している場
	  合に join の第2引数が 0 の場合が考慮されていなかった. 

Wed Oct  6 17:46:01 1993  Kota Abe  (k-abe at saba)

	* exception.h EXC_SETJMP マクロが Critical Level > 0 のまま 
	  pthread_exit() を呼ぶ可能性を排除. 

	* io.c: writev() : write したバイト数が, 要求したバイト数より少な
	  かった場合は, 全てが write されるまで繰り返す. 

	* io.c: select() : 恥ずかしいバグを修正. 

	* io.c: IO_mutex の lock/unlock 関数を高速化のためマクロ化 
	  (LOCK/UNLOCK)

	* io.c: Controlled キャンセルに対応した. 

	* stdio-lock.h : 作成.

	* stdio.c, stdio-lock.c : 高速化のため cleanup stack への push/pop 
	  を pthread_cleanup_push_f_np 等の関数版でなく,
	  pthread_cleanup_push 等のマクロ版を使うように変更.

Mon Oct  4 22:12:24 1993  Kota Abe  (k-abe at saba)

	* io.c, stdio.c : スレッドがキャンセルされても大丈夫なように,
	  pthread_unlock_mutex() を pthread_cleanup_push() を用いたコード
	  に変更した. 

	* pthread.c : pthread_exit() : thread-specific data を破壊する前に 
	  cleanup routine が実行されるようにした. 

	* pthread.c, pthread.h: pthread_cleanup_push(),
	  pthread_cleanup_pop() をマクロに変更. 関数版をそれぞれ 
	  pthread_cleanup_push_f_np(), pthread_cleanup_pop_f_np() とした. 

Wed Sep 29 18:21:39 1993  Kota Abe  (k-abe at saba)

	* io.c : write() : socket 及び character special に対して出力が最
	  後まで行なわれるようにした. 

Tue Sep 28 00:49:10 1993  Kota Abe  (k-abe at saba)

	* *.h: gcc 以外のコンパイラのため #include_next をインデントした.

	* Makefile.in : install entry を加えた.

	* rename libpthread.a to libpthreads.a (for DECthreads,OSF/1
	  compatibility)

	* pthread.c : pthread_first_np(), pthread_first_done_np() : 作成. 

	* pthread.c : pthread_once() : once_routine の実行が終了するまで, 
	  他の pthread_once() の呼出しはブロックする. 

	* queue.c : _pthread_queue_init() : 初期化する際に ring_queue.data
	  に NULL を入れるだけにし, 使用する際に動的に初期化するようにした.
	  ヒープ領域の断片化を防ぎ, priority ring queue での無駄な領域の使
	  用を抑える.

Mon Sep 27 22:30:40 1993  Kota Abe  (k-abe at saba)

	* io.c : write() : stdio ライブラリが write() が途中まで出力した場
	  合に write() を再発行しないので, tty では write() が途中まで出力
	  して return することがないようにした. write() は全てが出力される
	  までブロックする(on tty).

Sat Sep 25 03:02:34 1993  Kota Abe  (k-abe at saba)

	* mutex.c, cond.c : pthread_cond_unlock() で用いる mutex の unlock
	  ルーチンとして pthread_mutex_unlock() を用いることをやめて,
	  _pthread_mutex_unlock_internal() を新たに作成した. 

	* resolv+ のマルチスレッド化

Tue Sep 21 15:56:30 1993  Kota Abe  (k-abe at saba)

	* stdio/ctime.c : localtime_r(), gmtime_r(), asctime_r(), ctime() 
	  作成. POSIX1003.4a/D6 のリエントラント関数の一部. 

	* stdio/stdio-lock.c : flockfile(), funlockfile() : 作成. 

	* Util/renamemacro.pl : 作成. stdio.h のマクロをリネームするために
	  用いる.

	* include/pthread-stdio.h : マクロ getc_unlocked(),
	  getchar_unlocked(), putc_unloekd(), putchar_unlocked() :
	  renamemacro.pl を用いて生成する. 

	* *.h : gcc を用いている場合, システム側のヘッダファイルを include
	  するために #include_next directive を用いるように変更. 

	* mutex.c: pthread_mutex_unlock() : mutex を待っているスレッドのプ
	  ライオリティが unlock するスレッドのプライオリティより高いか同一
	  であれば, yield するように変更. 

	* cond.c : pthread_cond_wait(), pthread_cond_timedwait() : シグナ
	  ルが割り込んだ際に, シグナルハンドラを実行した後, mutex を 
	  unlock するが, その際のエラーチェックを止めた. 

	* sigwait() が待っていないシグナルが sigwait() 実行中のスレッドに
	  配送された場合(シグナルハンドラが起動される), sigwait() が 0 を
	  返すバグを修正. 

Mon Sep 20 14:40:01 1993  Kota Abe  (k-abe at saba)

	* stdio/stdio.c, stdio/stdio-lock.c : 作成. スレッド対応の stdio 
	  ライブラリを提供する. 

	* io.c: connect() : 2回目の CONNECT が EINVAL を返した場合,
	  getsockopt() して, エラーの原因を調査し, errno に代入する. 

	* configure, configure.in : Util の下に移動. 

Fri Sep 17 21:01:30 1993  Kota Abe  (k-abe at saba)

	* sleep.c: proc_usleep() : 作成. この関数は指定したマイクロ秒の間
	  (もしくはシグナルが割り込むまで) プロセス全体をスリープさせる. 
	  スレッドのスケジューリングを無視するので注意. 

	* pthread.h, pthread.c: 以下の global 変数を復活. 
	  pthread_attr_t pthread_attr_default;
	  pthread_mutexattr_t pthread_mutexattr_default;
	  pthread_condattr_t pthread_condattr_default;

Thu Sep 16 00:27:50 1993  Kota Abe  (k-abe at saba)

	* io.c: exit() : exit する際に, tty の FNDELAY, FASYNC を解除する.

	* signal.c: do_default_signal_action() : シグナルで自殺する前に,
	  tty の FNDELAY, FASYNC を解除する. 

Wed Sep 15 21:21:20 1993  Kota Abe  (k-abe at saba)

	* io.c: make_nonblock() : background だった場合, shell が混乱する
	  のを防ぐため, tty に対しては FNDELAY, FASYNC モードに設定しない. 

	* io.c: SIGHUP は ignore しない. 

■ ALPHA1.1 RELEASED

Tue Sep 14 02:49:02 1993  Kota Abe  (k-abe at saba)

	* pthread.c: pthread_init() : ライブラリが初期化されるまで, 全ての
	  シグナルをマスクする. 

	* io.c, signal.c: Job control に対応した. このため, SIGTTIN,
	  SIGTTOU, SIGHUP はプロセスレベルで ignore されることになった. 

	* signal.c, signal.h : シグナルアクションに SIG_SIGWAIT_NP を追加.
	  これは sigwait() しているスレッドがいない場合には, sigwait() さ
	  れるまでシグナルをプロセスでペンディングする. 

	* signal.c: sigwait() からリターンする前に sigwait() で指定した他
	  のシグナルがやってきた場合に, 最初のシグナルを失って次のシグナル
	  の結果のみを返すバグを修正.

■ ALPHA1.0 RELEASED

Sat Sep 11 21:00:42 1993  Kota Abe  (k-abe at saba)

	* signal.c: sigwait() しているスレッドが存在すれば, SIG_DFL,
	  SIG_IGN の場合でも sigwait() が有効に働く. 

	* signal.c: _pthread_pendsig() Critical region 実行中に発生したシ
	  グナルの動作が SIG_IGN, SIG_DFL の場合に assertion に引っかかる
	  バグを修正. 

Tue Sep  7 02:15:35 1993  Kota Abe  (k-abe at saba)

	* queue.c: _pthread_ring_queue_put() queue の内容を破壊するバグを
	  修正. 

Mon Aug 30 22:54:35 1993  Kota Abe  (k-abe at saba)

	* io.c: fcntl() 強制的に FASYNC|FNDELAY モードにセットする. 

	* io.c: select() 作成. select.c は削除.

Fri Aug 20 17:38:50 1993  Kota Abe  (k-abe at saba)

	* io.c: 作成. 以下のノンブロッキング関数をサポートする. 
		accept(), connect(), read(), readv(), write(), writev(), 
		recv(), send(), recvfrom(), recvmsg()

	* Nonblocking I/O 関数の提供を始めた. 

	* Util/renamesym.pl: func を rename する際に funcbar を rename し
	  てしまう可能性を排除.

Thu Aug 19 17:33:57 1993  Kota Abe  (k-abe at saba)

	* cond.c: pthread_cond_wait(), pthread_cond_timedwait() : Wait 中
	  にシグナルが配送された場合に, シグナルハンドラから戻った後, 再び
	  獲得した Mutex を開放するようにした. 

	* signal.c : シグナルが現在実行中でないスレッドに配送された場合,
	  シグナルマスクがクリアされないバグを修正. 

	* cond.c: pthread_cond_signal() : Cancel されているスレッドが 
	  Condition Signal の候補にならないようにした. 

	* cond.c: pthread_cond_wait(), pthread_cond_timedwait() : Cancel 
	  された場合, Cleanup routine を実行する前にMutex を再び獲得する.

	* signal.c: sigaction() : SIG_IGN に設定した際には, *その*スレッド, 
	  プロセスのペンディングシグナルセットをクリアする.

Wed Aug 18 03:56:16 1993  Kota Abe  (k-abe at autumn)

	* sched.c: _pthread_context_switch(): スレッドを destroy する際に 
	  name を free し忘れていたバグを修正. 

	* thread-attr.c: pthread_attr_getstackalloc_np(): stackalloc 属性を
	  返り値で返すように変更. 

	* PTHREAD_STACK_{SHM,REDZONE,HEAP} ->
	  PTHREAD_STACK_{SHM,REDZONE,HEAP}_NP に変更.

	* SCHED_FIFO, SCHED_RR のプライオリティの範囲を同一に(overlap)させ
	  るようにした. 

	* PRIO_NUM -> QUEUE_NUM に統一

	* SCHED_FIFO, SCHED_RR, SCHED_OTHER のプライオリティの幅を 16 から
	  32 へ拡大. 

	* EXCLUDE-JUNKS, EXCLUDE-DISTS を Util の下へ移動. 

Wed Aug 11 18:26:08 1993  Kota Abe  (k-abe at saba)

	* include/setjmp.h : マクロ setjmp, longjmp を加えた.

	* alarm.c: alarm(): 引数の型を int から unsigned int へ変更.

	* sleep.c: sleep(): 引数の型を int から unsigned int へ変更.

	* signal.c: raise(): 作成

	* gen-signal-h.pl: -a option のサポート

	* signal.c: pthread_setintr(), pthread_setintrtype(): 
	  前の状態を返すようにした. (POSIX 1003.4a/D6)

Tue Aug  3 16:04:33 1993  Kota Abe  (k-abe at saba)

	* internal.h: RET_EXC を加えた. 

	* sched.c: _pthread_time_queue_act(): exception 発生時には,
	  RET_INTR ではなく, RET_EXC で復帰するように変更. 

	* sched.c: _pthread_context_switch(): idle thread を無くした. 

	* signal.c: sigaction(): SIGALRM を handle できないバグを修正. 

	* Makefile.in, configure.in: renamesym の実行を configure から 
	  Makefile に移行. 

	* BEGIN_CRITICAL_REGION -> BEGIN_CRITICAL, END_CRITICAL_REGION ->
	  END_CRITICAL, END_CRITICAL_REGION_YIELD -> END_CRITICAL_YIELD

	* thread -> tcb (thread control block)

Mon Aug  2 21:23:46 1993  Kota Abe  (k-abe at saba)

	* sched.c: _pthread_dispatcher(), context_switch() : コンテキスト
	  スイッチが起こらないと, signal, exception が発生しないバグを修正.

	* sched.c: _pthread_unlink_from_run_queue_yield() :
	  _pthread_link_to_run_queue() で与えた値を返り値とするように変更.

	* FLAG_INTR を削除

	* 定数 INTR_RETURN, NORMAL_RETURN をそれぞれ RET_INTR, RET_NORMAL 
	  に変更

	* Makefile.in: lint のエントリを加えた.

	* select.c: select(): select(2) をコールするために, syscall を用
	  いるのをやめ, renamesym で対応.

Mon Jul 26 15:48:47 1993  Kota Abe  (k-abe at saba)

	* ソースファイルを src ディレクトリの下に移動. それに伴い,
	  Makefile, Makefile.in, configure.in を変更

Tue Jul 20 15:35:41 1993  Kota Abe  (k-abe at saba)

	* jump.c : jmp_buf を変更してスタックポインタを変更する場合, 新た
	  なスレッドを実行し始めた直後にシグナルマスクがクリアされていない
	  バグを修正.

Mon Jul  5 01:57:08 1993  Kota Abe  (k-abe at autumn)

	* signal 機構を P1003.4a base に変更. 

Tue Jun 22 00:11:12 1993  Kota Abe  (k-abe at saba)

	* POSIX の signal 処理関数 (+ sigstack system call) を持つアーキテ
	  クチャに renamesym で対応した.

	* Util/gen-errno-h.pl , Util/gen-errno-c.pl : 作成

Mon Jun 21 21:10:12 1993  Kota Abe  (k-abe at saba)

	* Util/gen-signal-h を sh のスクリプトから perl のスクリプトに変更.
	  (renamed to gen-signal-h.pl)

	* pthread_mutex_t, pthread_mutexattr_t を integer handle から 
	  struct に変更. mutex の lock/unlock 時間が60%ほど短縮された. 

Fri Jun 18 18:05:15 1993  Kota Abe  (k-abe at saba)

	* configure.in : signal() を override できるかどうかをチェックし, 
	  出来ない場合には, CFLAGS に -DCANT_OVERRIDE_SIGNAL を加える. 

	* NeXT で動くようになった. signal() を override することが出来なかっ
	  たので, NeXT では include/pthread.h で 
	  #define signal _pthread_signal するようにした.

	* configure.in : libc.a から malloc, free, realloc, calloc,
	  sys_errlist , sys_nerr を抽出する. 

	* configure.in : MIPS style の external symbol naming convention 
	  を用いているかどうかをチェックする. 

	* pthread_mutexattr_setprotocol() : PRIO_PROTECT をセットしようと
	  すると, errno = ENOSUP を返す. 

	* include/errno.h : ENOSUP を加えた. 

	* pthread_attr_setscope() : PTHREAD_SCOPE_GLOBAL をセットしようと
	  すると, errno = ENOSUP を返す. 

	* thread proof malloc は, libc の malloc を renamesym して用いるよ
	  うに変更. GNU malloc は用いない. 

Thu Jun 17 15:48:16 1993  Kota Abe  (k-abe at saba)

	* 最後のスレッドが終了する際に detach されていたら, exit status を 
	  0 に, さもなくば 1 にするように変更. (P1003.4a/D6)

	* pthread_cond_wait() : Block している間にシグナルが配送された場合,
	  mutex を lock してから, signal catching function を実行するよう
	  に変更. (P1003.4a/D6)

	* #ifdef REENTRANT_LOCK を取り除いた. 

	* ENOSYS を定義するため, include/errno.h を加えた. 

	* P1003.4a/D6 に基づかない独自の関数に _np の suffix を与えた. 

	* main() : Initial thread が終了する際の return code をプロセス終
	  了コードとして, exit する. (P1003.4a/D6) 

Wed Jun 16 23:00:29 1993  Kota Abe  (k-abe at saba)

	* pthread_join() : 第二引数に NULL を渡すと, スレッドの返り値は受
	  け取られないように変更. (P1003.4a/D6)

Tue Jun 15 17:24:11 1993  Kota Abe  (k-abe at saba)

	* pthread_condattr_setpshared, pthread_condattr_getpshared,
	  pthread_mutexattr_setpshared, pthread_mutexattr_getpshared
	  errno に ENOSYS をセットし, -1を返すように変更. (P1003.4a/D6)

Fri Jun  4 01:49:10 1993  Kota Abe  (k-abe at saba)

	* pthread.h : #define __APPLE__ を加えた. 

	* sched_get_priority_max(), sched_get_priority_min() 関数(based on
	  POSIX.4) を加えた. 

	* 不必要な sigsetmask システムコールを避けるようにした. 

	* pthread_create() : より優先度の高いスレッドを作成したとき,
	  Critical Count がおかしくなるバグを修正. 

Thu Jun  3 19:48:15 1993  Kota Abe  (k-abe at saba)

	* stop_itimer() : 不必要な setitimer システムコールを避けるように
	  した. 

	* ext-array.c からいくつかの関数を inline.h に移して inline 展開す
	  るようにした. 

Wed Jun  2 21:39:33 1993  Kota Abe  (k-abe at saba)

	* pthread_join しているスレッドが, asynchronous signalを受け取った
	  場合, デッドロックするバグを修正.

Tue Jun  1 19:17:34 1993  Kota Abe  (k-abe at saba)

	* queue.c からいくつかの関数を inline.h に移して inline 展開するよ
	  うにした. 

	* siglongjmp する際に, プロセスレベルのシグナルスタックを 
	  sigsetjmp した時点の値に戻すように変更. スタックが自動的に伸びる
	  アーキテクチャでのみ意味がある. 

	* _pthread_signal_handler(汎用シグナルハンドラ)を実行する際にブロッ
	  クするシグナルに, SIGALRM を加えた. 

Sun May 30 00:52:42 1993  Kota Abe  (k-abe at saba)

	* stack.c : correct typo. (スタックが拡張しないようになっていた)

	* Critical Region から出るときの処理を完全にした. 

	* jump.c : _pthread_call がシグナルを用いないようなアーキテクチャ
	  の場合でも, _pthread_call からリターンできる. 

■ ALPHA.0 RELEASED

Thu May 27 00:16:21 1993  Kota Abe  (k-abe at saba)

	* pthread.h : #define main _pthread_main するようにした. 実際の 
	  main 関数は, ライブラリ中に存在する. これによって,
	  pthread_init()を呼ぶ必要が無くなった. 

	* stack.c : heap memory stack も cache するようにした. 

	* pthread_detach() : 既に pthread_exit() したスレッドを detach す
	  る場合は, そのスタックを破棄するようにした. 

Wed May 26 01:52:15 1993  Kota Abe  (k-abe at saba)

	* jump.c : risc-news, sun4, luna(68k) では, シグナルを用いずにスタッ
	  クポインタを設定することが出来るようになった. 

	* jump.c : 大域ジャンプを行う関数群を分離した. 

	* _pthread_call() : シグナルを用いず, jmp_buf 構造体のスタックポイ
	  ンタをいじってジャンプする (うまく動かない:-)

	* pthread_kill() : 自分自身にシグナルを送ったときに, すくにアクショ
	  ンが実行されないバグを修正. 

	* スタックを設定して関数をcallするルーチン(_pthread_call)を作成.
	  (sigstack を使わないでもスタックポインタを設定できるようになった
	   場合への布石. )

Tue May 25 21:39:41 1993  Kota Abe  (k-abe at saba)

	* pthread.h : {#define,#undef} _POSIX_* を加えた. 

Wed May 19 19:52:57 1993  Kota Abe  (k-abe at saba)

	* Makefile.in : -D$(ARCH) を -D__$(ARCH)__ に変更. 

	* configure.in : GCC2FLAGS に -Wno-import を追加. (NeXT 対策)

Mon May 17 06:34:01 1993  Kota Abe  (k-abe at saba)

	* signal.c : SIG_IGN を取り扱えるようにした. 

	* stack.c : #define MANUAL_SHM_BASE すると, スタックセグメントを適
	  当なアドレスに選ぶようにした. (luna88k 対策)

	* stack.c : #define SHM_STACK_APPEND すると, overflow した shared
	  memory stack は新たなスタックセグメントを attach する際に取り除
	  かず, そのまま置いておくようにした. (luna88k 対策)

	* スレッドに名前を付ける機構を加えた(pthread_set_name(),
	  pthread_get_name()) (拡張)

Sat May 15 19:36:26 1993  Kota Abe  (k-abe at saba)

	* stk-grow-dir.c : _longjmp が現在の関数フレームより下のスタッ
	  クを持つ環境へジャンプできるかをチェックする. ジャンプできない
	  (longjmperror() が呼ばれる) ならば, #define LONGJMP_BOTCH する. 

	* LONGJMP_BOTCH の場合, longjmperror()が呼ばれるような状況では, 一
	  度 data section に確保した signal stack にジャンプし, そこから 
	  _longjmp するようにした. これによって, _longjmp がスタックポイン
	  タのチェックを行っている場合でもうまく動く. 

	* Makefile.in : setjmp.o に関するルールを削除

	* OMRON LUNA-88K で動くようになった. 

Fri May 14 00:07:39 1993  Kota Abe  (k-abe at saba)

	* EXC_SETJMP block 内から return すると, exception block counter 
	  が decrement されないバグを修正. 

	* EXC_SETJMP block 内で block しているときに, その thread が 
	  cancel された場合, EXC_EXCCATCH block に制御が移るようにした. 

	* Cancel の処理を pseudo signal から, exception base に変更.

	* pthread_setintr(): PTHREAD_INTR_ENABLE の場合, すでに Cancel さ
	  れていたら, pthread_exit() するように変更. 

	* pthread_setintrtype で, すでに Cancel されていたら,
	  pthread_exit() するように変更. 

Tue May 11 00:30:06 1993  Kota Abe  (k-abe at sunfish)

	* VPATH の無い make の為に, Util/vpatheml.sh を作成. Makefile の 
	  .DEFAULT から呼び出す. (まだうまく動かない...)

	* HP-UX で動くようになった. 

	* スタックの確保法に, REDZONE PROTECT スタックを加えた. 
	  (ヒープから確保したスタックの先頭領域を mprotect(2) を用いてアク
	  セス禁止にする)

	* pthread.h に PTHREAD_STACK_MPROTECT を加えた. 

Mon May 10 20:16:10 1993  Kota Abe  (k-abe at saba)

	* BSD/386 (POSIX style の signal system call を持つ) で動くように
	  なった.

	* これに伴い, pthread のための include directory は, アーキテク
	  チャ毎に存在するようになった. 

Sat May  8 19:52:18 1993  Kota Abe  (k-abe at sunfish)

	* スレッドが終了した時, shared memory stack は後の pthread_create 
	  のためにキャッシュして置くようにした. 

■ PRE ALPHA VERSION RELEASED

Thu May  6 03:55:47 1993  Kota Abe  (k-abe at autumn)

	* OMRON LUNA-88K でコンパイルできるようにした. しかし, longjmp で 
	  Stack pointer の check を行っているため, 動かない ;-)

	* CISC NEWS でコンパイルできるようにした. 

Mon May  3 18:07:16 1993  Kota Abe  (k-abe at saba)

	* GNU autoconf を導入した. 

	* sigblock(0) を呼ばないようにした. 

	* シグナルがネストした時の処理のデバッグ (with AUTO_STACK_EXPANSION)

	* OMRON LUNA でコンパイルできるようにした. 

Thu Apr 22 00:24:02 1993  Kota Abe  (k-abe at saba)

	* SunOS の LWP like な message passing 機構を導入した. 
	  ( pthread_msg_send, pthread_msg_recv, pthread_msg_reply )

	* stack を確保する方法を thread attribute で指定できるようにした. 
	  ( pthread_attr_setstackalloc, pthread_attr_getstack_alloc )
	  デフォルトでは, PTHREAD_STACK_SHM (共有メモリから確保する)
	
Mon Apr 19 22:09:59 1993  Kota Abe  (k-abe at saba)

	* 必要でない場合, pthread_yield, _pthread_blocked_yield で 
	  sigsetmask を呼ばないようにした. 

	* process level signal mask がマスクされたままになる場合があるバグ
	  を修正.

	* pthread_create() : 自分自身より高い優先順位のスレッドを作った場
	  合には context switch を行う. 

	* 不必要な SIGALRM を抑制するようにした. 

Fri Apr 16 23:31:41 1993  Kota Abe  (k-abe at saba)

	* pthread_yield, _pthread_blocked_yield を呼んだ後に, プロセスレベ
	  ルの signal mask がクリアされないバグを修正. 

Wed Apr 14 21:55:08 1993  Kota Abe  (k-abe at saba)

	* pthread_create, pthread_mutex_init, pthread_cond_init で 
	  attribute に 0 を指定すれば default となるようにした. 
	  ( pthread_attr_default , pthread_mutexattr_default ,
	  pthread_condattr_default は旧式らしい )

Tue Apr 13 23:07:29 1993  Kota Abe  (k-abe at saba)

	* POSIX 1003.4a/D6 に基づいた変更を加えた. 

Wed Apr  7 02:53:37 1993  Kota Abe  (k-abe at autumn)

	* RCS の使用を始めた. 

	* 変数にコンテキストスイッチの回数を記録する 
	  (_Pthread_voluntary_csw, _Pthread_preemptive_csw,
	  _Pthread_sigalarm)

Tue Apr  6 02:28:21 1993  Kota Abe  (k-abe at autumn)

	* stk-grow-dir.c を Util の下に移動した. 

	* NEWS-OS 4.1C でコンパイルできるように修正. 

	* priority queue の使用されていないメンバ (block , block_threads) 
	  を削除した. 

Thu Apr  1 19:08:35 1993  Kota Abe  (k-abe at saba)

	* Ultrix4.3 でコンパイルできるように修正. 

	* thread にシグナルを送る pthread_raise_np() を追加. (signal.c)

	* thread 作成時に General cancelability が OFF になっていたのを ON
	  になるように修正. (pthread_create)
