summaryrefslogtreecommitdiff
path: root/lib/libpthread/Whats_New
blob: 556d9f6326846c4fbf65172a613a62652034f214 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
For patches made to this release, check the file Changes-mysql

For the 96/11/11 release version 1_60_beta6

	Ports
		Alpha running NetBSD-1.1 by Chris G Demetriou <cgd+@cs.cmu.edu>
		i386 running BSDi-2.1 by David J MacKenzie <djm@va.pubnix.com>

	Bug Fixes
		Test for struct timespec under linux and DTRT.
		include/unistd.h : #define SEEK_SET, SEEK_CUR, and SEEK_END.
        	Bug reported by Stephen Tether <tether@MITLNS.MIT.EDU>
		stdlib/system.c : Uses the POSIX signal systemcalls. 
        	Bug reported by Matthew Newhook <matthew@thor.udc.neweast.ca>.
		net/gethostbyname.c: #include <string.h> and fix dereference problem.
        	Bug reported by Chris G Demetriou <cgd+@cs.cmu.edu>
		pthreads/fd.c: Fix bug in close() reported by 
			Bug reported by "William S. Lear" <rael@dejanews.com>
		tests/p_bench_pthread_create.c : Only try and create 10000 threads.
    	include/pthread/sleep.h : No need to prototype machdep_gettimeofday()
       		since it is declared here. 
			Bug reported by Stewart Gebbie <stewart@global.co.za>
		stdio/fwrite.c: Fixed bug where if total bytes written = 0 then a divid
        	by 0 occurs. Thanks to CTLarsen@lbl.gov for finding is and to
        	Jin Guojun <jin@george.lbl.gov> for submitting a patch for it.
		stdio/refill.c (__swalk_lflush()): Second pass of flush should call
	        flockfile() not ftrylockfile(). Just like in __swalk_sflush()
		net/res_internal.c (_res_parse_answer()): It looks like if
        	iquery is true and type == T_PTR then the result->h_name
        	will be over written because the bp isn't incrementd
        	appropriately. Thanks to David Halls <David.Halls@cl.cam.ac.uk>
        	for finding it.
		net/serv_internal.c (_serv_buf()) : Allocate more than four bytes
        	of buffer space.  Reported by drh@@tobit.vnet.net. 
		pthreads/fd_kern.c: Make sure exception fds are included in
       		 machdep_sys_select() for support of select(). Thanks to
        		Larry V. Streepy, Jr. <streepy@healthcare.com> for the patches.
		pthreads/fd_kern.c: Fix more I/O routines to report NOTOK on error
       		instead of the old -error number. Hopefully this is the last of
        	them. Thanks to Larry V. Streepy, Jr. <streepy@healthcare.com> for
        	the patches.
		machdep/engine-i386-linux-1.0.c: Remove unneeded machdep_sys_readv()
        	and machdep_sys_writev() routines. Reported by
		pthreads/process.c : Fix execl() and execle() to work on sparc systems.
		pthreads/fd_sysv.c : Fix accept() to work under Solaris 2.4


For the 96/03/09 release version 1_60_beta5

	Ports
		Sparc running NetBSD-1.1

	Additions
		New reentrant netdb similar to Solaris API (ghudson)

	Bug Fixes
		Make default signal handlers work.
		Deadlock scheduling bug reported by Cathy Abbott <cabbot@cs.utk.edu>
			See pthreads-bugs transaction 31
		pthread/queue.c (pthread_queue_remove()): Don't set thread->queue and
        	thread->next to NULL unless the thread is removed from the queue.
		pthreads/fd.c (setsockopt(), getsockopt(), getsockname(),
			getpeername()) : Call fd_lock() with appropriate paramaters.
		pthreads/fd_kern.c (sendmsg_timedwait()): Call fd_unlock() with
			FD_WRITE instead of FD_READ paramater.
		machdep/*/timers.h net/res_send.c, pthreads/cond.c, pthreads/select.c
			pthreads/sleep.c, tests/test_pthread_cond_timedwait.c:
			Change timespec to be POSIX compliant.
		include/unistd.h : Change u_int to unsigned [int] in prototypes.
		pthreads/fd.c : Use FD_SETSIZE instead of 1024 for a limit on fds.


For the 95/09/xx release version 1_60_beta4

	Ports
		SGI running IRIX-5.3

	Additions
		Added pthread_sigprocmask().
		Added CV attributes

		strtok() and strtok_r() (Greg Hudson)
		getsockname() (Sean Levy)

	Bug Fixes
		stdio/fwalk.c, stdio/refill.c : Use flockfile() instead of
			ftrylockfile()/pthread_yield(), for traversing FILE list.
		pthreads/sig.c : Remove enum pthread_sig_flags and just use the vector.
 		   Added pthread_sigprocmask().
		pthreads/signal.c : Protect calls to pthread_sig_process().
		configure : Create the obj directory.
		tests/test_preemption_float.c : Rewritten to actually work.
		machdep/engine-i386-linux-1.0.c : Added __strtol_internal()
		tests/test_stdio_1.c : Don't use base_name or dir_name as variables.
		gen/getcwd.c : fstat => machdep_sys_fstat, since kernel fd's are 
			used in the DIR data structure
		gen/isatty.c : Fixed call to fd_lock() to pass the right # args.
		pthreads/pthread_init.c : Fixed uninitialized members of 
			pthread_initial. 
		


For the 95/06/xx release version 1_60_beta3

	Additions
		Add exec variants execl, execlp, execv, execvp (Ken Raeburn)
		pthreads/fd_sysv.c : Added routines setsockopt() and getsockname().
		Added include/endian.h : For machine dependent endian junk. (YUCK)
		Added socketpair()
		Added ttyname_r()

	Bug Fixes
		config/Makefile.in : Need $$ to reference shell variables in make.
		config/configure, config/configure.in : Redo freebsd2.* machine.
		machdep/sunos-4.1.3/__stdlib.h : typedef pthread_size_t size_t
		pthreads/fd.c : Fix bug with fd_free(), dup(), dup2(), and close()
			where a fd gets lost after a dup() then close().
		pthreads/fd_kern.c : The fd_table[fd]->flags of the fd that accept()
        	returns should be the same as those of the fd passed to accept().
		stdio/fclose.c : Don't call funlockfile(fp) after fp->_file has been 
			closed.
		pthreads/select.c : Move pthread_sched_prevent() inside the statement.
        	if (machdep_sys_select(...) == OK)
		pthreads/machdep/linux-1.0/cdefs.h : moved the include_next outside 
			of the ifdef so that it would eventually find the system cdefs.h
		pthreads/signal.c : Check sig_to_process before and after fd_kern_wait()
			. It is possible for sig_handler_fake() to registered one.
		pthreads/signal.c : Unset pthread_run temporarily around the call to 
			sig_handler(0). places where this causes core dumps should check 
			pthread_run.
		include/stdlib.h : Fix prototype for bsearch().
		machdep/syscall-i386-freebsd-2.0.S syscall-template-i386-freebsd2.0.S:
			Fix macro expansion problems for FreeBSD-2.0
		machdep/engine-sparc-sunos-5.3.c : Fix machdep_sys_select() to return
	        machdep_sys_poll() errors and not the number of entries found.
		gen/getcwd.c : Use strlen(dp->d_name) not dp->d_namlen because there 
			may be extra data associated with dp->d_namelen.
		machdep/freebsd-2.0/__unistd.h: Change #define _POSIX_VDISABLE to 0xff
		include/pthread.h : Added prototypes pthread_kill(), pthread_signal()
		machdep/linux-1.0/__signal.h : Added #define __sigmask() and 
			#define sigmask, and fixed other SIG macros to use __sigmask.
		machdep/linux-1.0/dirent.h : #include <sys/types.h>
		machdep/linux-1.0/wait.h : Fix #define WIFSTOPPED(x) to use __WSTATUS(x)
		machdep/syscall-i386-linux-1.0.S : Added elf support. (NOT TESTED)
		pthreads/stat.c : Added to separate linux stat calls. 
			(SGI will need this too) 
		pthreads/signal.c : Whereever #ifdef (SA_RESETHAND) is used then
        	#ifdef (SA_RESTART) also
		gen/isatty.c : isatty_basic() is called with the KFD not UFD.
		machdep/sunos-4.1.3/__stdlib.h : #include <sys/stdtypes.h>
		config/sun4os4.mk : Added pipe to SYSCALL_EXCEPTIONS
		machdep/syscall-sparc-sunos-4.1.3.S : Add machdep_sys_pipe().
		include/stdio.h : Remove __getc() and __putc(), because they really
			shouldn't be inlined.
		machdep/sunos-4.1.3/stat.h : Added __BEGIN_DECLS and __END_DECLS.
		machdep/alpha-osf1/cdefs.h, machdep/hpux-9.03/cdefs.h
    	machdep/linux-1.0/cdefs.h, machdep/sunos-4.1.3/cdefs.h
    	machdep/sunos-5.3/cdefs.h, machdep/ultrix-4.2/cdefs.h :
        	#define __INLINE static inline and don't #define 
			__CAN_DO_EXTERN_INLINE if __cplusplus and __GCC__ is defined.
		pthreads/fd_sysv.c : Fix so that only systems without socket systemcalls
        	compile this file.
		machdep/engine-i386-linux-1.0.c : Fix linux machdep_sys_getdirentries()
		pthreads/gen : Nuke the signal-blocking code in pclose(). It doesn't do
			any good in a threaded program; some other thread would just get 
			the signal.


For the 94/11/xx release version 1_60

	Additions
		Added recvfrom_timedwait(), and similar calls
		Added thread safe time routines: ctime(), localtime(), ...
		Added thread safe rand routines: rand(), random(), ...
		Added priorities and releated routines: pthread_attr_getschedparam(), 
		Added signals and releated routines:pthread_kill(), sigwait(), ...
		Added mutex attribues and releated routines: pthread_mutexattr_init(), .
		Added abort

		Added counting (recursive) mutexes.
		Added debugging mutexes.
		Added some more tests

		Redid entire thread kernel because of priorities, and signals.
		Test and set instructions no longer necessary for versions
		that don't support kernel threads.

		More debugging by Greg Hudson along with the network lookup routines
		An Alpha port from Ken Raeburn and Sean Levy
		A solaris port from me.
		select() implementations from Sean Levy and Peter Hofmann
		configure from Ken Raeburn
		pthread_init() no longer necessary for systems with G++ from Ken Raeburn
		net code from Greg Hudson including: gethostbyname(), ...

	Bug fixes:
		honor _POSIX_THREAD_DESTRUCTOR_ITERATIONS
		pthread_key_destroy() is really pthread_key_delete()