1 ____ _ _ 2 | _ \| |_| |__ 3 | |_) | __| '_ \ ``Just because everything is different 4 | __/| |_| | | | doesn't mean anything has changed.'' 5 |_| \__|_| |_| -- Irene Peter 6 7 pthsem based on 8 GNU Pth - The GNU Portable Threads 9 10 ChangeLog 11 ========= 12 13 This is the list of all(!) changes to this Pth source tree. For a list 14 of just the user-visible and/or major changes please have a look at 15 the NEWS file. 16 17 ____ ___ 18 |___ \ / _ \ 19 __) || | | | 20 / __/ | |_| | 21 __|_____(_)___/_________________________________________________________ 22 23 Changes between 2.0.7 and 2.0.8 24 *) Implement monotonic clock support 25 [Martin Koegler] 26 27 Changes between 2.0.6 and 2.0.7 (22-Nov-2005 to 08-Jun-2006) 28 29 *) Upgraded build environment from GNU shtool 2.0.3 to 2.0.6 30 and from GNU libtool 1.5.20 to 1.5.22. 31 [Ralf S. Engelschall] 32 33 *) Let AC_CHECK_PTH use "pth-config --libs --all" instead of just 34 "pth-config --libs" to allow it to work under platforms like 35 Solaris where additional libraries are required. 36 [Ralf S. Engelschall] 37 38 *) Adjusted all copyright messages for new year 2006. 39 [Ralf S. Engelschall] 40 41 Changes between 2.0.5 and 2.0.6 (05-Oct-2005 to 22-Nov-2005) 42 43 *) Add a missing "break" in pth_attr.c:pth_attr_ctrl(). 44 [Stefan Schippers <stefan@schippers.it>] 45 46 *) Return an error if pth_kill() is called before pth_init(). 47 [Martin Kraemer <Martin.Kraemer@Fujitsu-Siemens.com>] 48 49 Changes between 2.0.4 and 2.0.5 (18-Feb-2005 to 05-Oct-2005) 50 51 *) Upgraded build environment to GNU libtool 1.5.20 and 52 GNU shtool 2.0.3 53 [Ralf S. Engelschall] 54 55 Changes between 2.0.3 and 2.0.4 (03-Dec-2004 to 18-Feb-2005) 56 57 *) Fix internal determination of maximum number in a size_t in 58 the string formatter engine. 59 [Ralf S. Engelschall] 60 61 *) Upgraded build environment to GNU libtool 1.5.14 62 [Ralf S. Engelschall] 63 64 *) Add quotes around function names for AC_DEFUN in pth.m4 to avoid 65 warnings about "underquoted definitions". 66 [Stephane Loeuillet <stephane.loeuillet@cegetel.net>] 67 68 *) Adjusted all copyright messages for new year 2005. 69 [Ralf S. Engelschall] 70 71 *) Do not insist on writing to the source directory on "make install" 72 in order to more closely follow GNU standards. 73 [Bruno Haible <bruno@clisp.org>] 74 75 *) Remove "*.bak" and "*~" files under "make distclean" 76 instead of "make clean". 77 [Bruno Haible <bruno@clisp.org>] 78 79 Changes between 2.0.2 and 2.0.3 (12-Sep-2004 to 03-Dec-2004) 80 81 *) Resurrect the old "make striptease" command by fixing the 82 configure run-time in the stripped down source tree and fixing the 83 list of source files. 84 [Ralf S. Engelschall] 85 86 *) The pth_uctx_save() and pth_uctx_restore() API functions 87 unfortunately were broken by design because they are C 88 _functions_. This leads to one more deadly nesting on the 89 run-time stack which effectively caused the pth_mctx_restore() 90 in pth_uctx_restore() to return to the end of pth_uctx_save() 91 but then the control flow unfortunately returns to the 92 pth_uctx_restore() caller instead of the pth_uctx_save() caller 93 because the call to pth_uctx_restore() had already overwritten the 94 run-time stack position where the original return address for the 95 pth_uctx_save() call was stored. 96 97 The only workaround would be to #define pth_uctx_save() and 98 pth_uctx_restore() as C _macros_, but this then would require that 99 lots of the GNU Pth internals from pth_mctx.c would have to be 100 exported in the GNU Pth API (which in turn is not acceptable). So, 101 the only consequence is to remove the two functions again from the 102 GNU Pth API. 103 [Ralf S. Engelschall, Stefan Brantschen <sbr@acm.org>] 104 105 *) Enhance internal pth_mctx_save() if getcontext(3) is used for the 106 machine context saving by better emulating the setjmp(3) style 107 return code semantics. 108 [Ralf S. Engelschall] 109 110 *) Do not break in pth_msgport_find() if a message port 111 was created with a NULL name. 112 [Ralf S. Engelschall] 113 114 *) Better error checking in pth_key_xxx() functions. 115 [Ralf S. Engelschall] 116 117 *) Added PTH_CTRL_FAVOURNEW control which allows the user 118 to disable the favouring of new threads on scheduling 119 to get more strict priority based scheduling behavior. 120 [Ralf S. Engelschall, Vinu V <Vinu_V@mindtree.com>] 121 122 *) Upgraded build environment to GNU libtool 1.5.10 123 [Ralf S. Engelschall] 124 125 Changes between 2.0.1 and 2.0.2 (13-Jul-2004 to 12-Sep-2004) 126 127 *) Added hard syscall wrappers for send(2) and recv(2). 128 [NetBSD pkgsrc patches] 129 130 *) Internally handle errors returned from pth_event() in order 131 to pass them upstream to the caller in pth_high.c functions. 132 [Ralf S. Engelschall, NetBSD pkgsrc patches] 133 134 *) Fix syscall wrapper for sendto(2). 135 [NetBSD pkgsrc patches] 136 137 *) Use "(char *)NULL" instead of plain "NULL" in last argument to 138 execl(2) to avoid GCC 3.5's "warning: missing sentinel in function call". 139 [Ralf S. Engelschall] 140 141 *) Workaround Autoconf/m4 problems in pth.m4 by using "m4_define" 142 instead of just "define" and no using m4_undefine at all. 143 [Dr. Andreas Mueller <afm@othello.ch>] 144 145 *) Avoid side-effects by defining _XOPEN_SOURCE only temporarily 146 for inclusion of <poll.h> instead of permanently. 147 [Graham Nash <gnash@ncube.com>] 148 149 *) Workaround GCC 2.x and 3.5 (3.4 worked fine) macro parsing 150 behaviour by using a pre-declared function pointer type "typedef 151 int (*pth_event_func_t)(void *);" instead of using an inlined 152 "int (*)(void *)". 153 [Ralf S. Engelschall, Robert Anderson <RWA@sbcglobal.net>] 154 155 *) Fixed prototype for pthread_attr_setschedparam(3) from 156 to use a "const struct sched_param *" argument. 157 [Rafael �vila de Esp�ndola <rafael.espindola@ic.unicamp.br>] 158 159 *) Upgraded build environment to GNU libtool 1.5.8 160 and GNU shtool 2.0.1. 161 [Ralf S. Engelschall] 162 163 Changes between 2.0.0 and 2.0.1 (17-Feb-2003 to 13-Jul-2004) 164 165 *) Fix handling/casting of "int (*)(void *)" callback functions. 166 [Ralf S. Engelschall] 167 168 *) Resolve symbol conflict in pth_string.c between pow10/round 169 and GCC builtins. 170 [Ralf S. Engelschall] 171 172 *) Use GCC 3.3 option "-fno-strict-aliasing" (if available) under 173 Autoconf option "--enable-debug" because mainly pth_mctx.c 174 contains important and correct pointer casting constructs which 175 are not acceptable in "strict aliasing" for GCC. 176 [Ralf S. Engelschall] 177 178 *) Upgraded build environment to GNU autoconf 2.59, GNU libtool 1.5.6 179 and GNU shtool 2.0.0. 180 [Ralf S. Engelschall] 181 182 *) Fixed implementation so that --enable-pthread now correctly 183 implies --enable-syscall-soft. 184 [Steve Alstrin <Steve.Alstrin@NetIQ.com>, Ralf S. Engelschall] 185 186 *) Replace some 0 by more politically correct NULL in pth_string.c 187 [Ralf S. Engelschall] 188 189 *) Adjusted all copyright messages for new year 2004. 190 [Ralf S. Engelschall] 191 192 Changes between 2.0b2 and 2.0.0 (04-Dec-2002 to 17-Feb-2003) 193 194 *) Final source tree polishing before release. 195 [Ralf S. Engelschall] 196 197 *) Wrote summary for Pth 2.0 for the ANNOUNCE document. 198 [Ralf S. Engelschall] 199 200 *) Adjusted all copyright messages for new year 2003. 201 [Ralf S. Engelschall] 202 203 Changes between 2.0b1 and 2.0b2 (08-Nov-2002 to 04-Dec-2002) 204 205 *) Upgraded built environment to GNU Autoconf 2.57. 206 [Ralf S. Engelschall] 207 208 *) Fixed compiler warnings under Linux: require inclusion of <time.h> 209 [Joseph Wayne Norton <norton@alum.mit.edu>] 210 211 *) Fixed error handling in pth_init(3): it now correctly 212 returns an error instead of abort(3)'ing. 213 [Ralf S. Engelschall] 214 215 *) Added soft syscall mapping for nanosleep(3) and 216 usleep(3) functions also to the Pthread API. 217 [Ralf S. Engelschall] 218 219 Changes between 2.0b0 and 2.0b1 (07-Nov-2002 to 08-Nov-2002) 220 221 *) Make pth_poll(3) more compliant to POSIX.1-2001/SUSv3 poll(2). 222 [Ralf S. Engelschall, Nick Hudson <skrll@netbsd.org>] 223 224 *) Make pth_select(3) more compliant to POSIX.1-2001/SUSv3 select(2). 225 This especially fixes the polling-only situation (timeout = (0,0)). 226 [Ralf S. Engelschall] 227 228 *) Make sure that in the even manager a polling-only select(2) call 229 uses a correctly initialized timeout parameter. 230 [Ralf S. Engelschall] 231 232 *) Added soft and hard syscall mapping for nanosleep(3) and 233 usleep(3) functions. 234 [Ralf S. Engelschall] 235 236 *) Fix poll(2) semantics: remove POLLRDNORM from polling 237 result if POLLHUP is detected. 238 [Paolo Bonzini <bonzini@gnu.org>] 239 240 *) Updated PORTING file to include community feedback from 241 the last months. 242 [Ralf S. Engelschall] 243 244 Changes between 1.4.1 and 2.0b0 (27-Jan-2002 to 07-Nov-2002) 245 246 *) Fix dropping of scheduler thread pools and this way fix memory leak. 247 [Ralf S. Engelschall] 248 249 *) Check for PTH_FDMODE_ERROR error conditions internally, too. 250 [Ralf S. Engelschall] 251 252 *) Use the new PTH_STATUS_FAILED event status in the scheduler's 253 event-manager for filedescriptor events if the internal select(2) 254 call returned with an error. Additionally this PTH_STATUS_FAILED 255 is recognized by the high-level API functions (pth_select, etc) 256 and produce the necessary POSIX conforming return codes (usually 257 -1 and errno == EBADF). 258 [Ralf S. Engelschall, Thanh Luu <tluu@synapcity.com>] 259 260 *) The function "int pth_event_occurred(pth_event_t)" was replaced 261 with "pth_status_t pth_event_status(pth_event_t)" where pth_status_t 262 can have values of PTH_STATUS_PENDING (replacing the old FALSE return 263 value of pth_event_occurred), PTH_STATUS_OCCURRED (replacing 264 the old TRUE return value of pth_event_occurred), and 265 PTH_STATUS_FAILED (a new return value indicating an error in 266 processing the event). This was scheduler/event-manager errors can 267 be indicated which happended while processing the event. For 268 backward compatibility reasons, a macro pth_event_occurred() was 269 added. This will be removed soon. 270 [Ralf S. Engelschall] 271 272 *) Upgraded to latest version of the OSSP Autoconf macro 273 AC_CHECK_EXTLIB in order to fix problems with the current 274 Autoconf 2.54 environment. 275 [Ralf S. Engelschall] 276 277 *) Add Autoconf option --with-fdsetsize=NUM which allows to 278 force a particular (usually higher than the default) FD_SETSIZE 279 value for building Pth. Additionally Pth makes sure that the 280 application using Pth does not use an even larger size. 281 [Nick Hudson <skrll@netbsd.org>, Ralf S. Engelschall] 282 283 *) Added thread attribute PTH_ATTR_DISPATCHES which (in bounded 284 attribute objects) is incremented every time the context 285 is switched to the associated thread. This can be used for 286 statistical information. 287 [Ralf S. Engelschall] 288 289 *) Added a stand-alone sub-API for manual user-space context 290 switching. It is somewhat modeled after the POSIX ucontext(3) 291 facility and consists of an opaque data type pth_uctx_t and 292 the management functions pth_uctx_create(), pth_uctx_make(), 293 pth_uctx_save(), pth_uctx_restore(), pth_uctx_switch() and 294 pth_uctx_destroy(). These functions are based on the same 295 underlying machine context switching facility (pth_mctx) 296 the threads in GNU Pth are using. This facility can be used 297 to implement co-routines without a full real multithreading 298 environment or even to implement an own multithreading 299 environment. 300 [Ralf S. Engelschall] 301 302 *) Add a Pth variant of the new POSIX pselect(2) function, including 303 soft and hard syscall mapping support for it. 304 [Ralf S. Engelschall] 305 306 *) More POSIX compliance for pth_select() in case of invalid 307 timeout values and invalid filedescriptors. 308 [Ralf S. Engelschall] 309 310 *) Internally switch from "errno_shield {...}" to "pth_shield {...}" 311 and from "return_errno(..)" to "return pth_error(...)" in order to 312 make the internal error handling a little bit more consistent. 313 [Ralf S. Engelschall] 314 315 *) Cleaned and speeded up the pth_exit() processing. 316 [Ralf S. Engelschall] 317 318 *) Added POSIX-compliant sanity checks for bad filedescriptors 319 to mostly all filedescriptor-based I/O functions in pth_high.c 320 [Ralf S. Engelschall] 321 322 *) Added pth_nanosleep() function. 323 [Nick Hudson <skrll@netbsd.org>, Ralf S. Engelschall] 324 325 *) Allow a NULL name for pth_msgport_create() in order to 326 support locally scoped message ports which are not searched via 327 pth_msgport_find(). 328 [Ralf S. Engelschall, Matthew Mondor <mmondor@gobot.ca>] 329 330 *) Added "hard syscall mapping" support for using 331 SYS___sigprocmask14 instead of SYS_sigprocmask on NetBSD. 332 [Nick Hudson <skrll@netbsd.org>] 333 334 *) Changes three direct sigprocmask(2) calls with the corresponding 335 "hard syscall mapping" macro calls. 336 [Nick Hudson <skrll@netbsd.org>] 337 338 *) Add Autoconf support for GNU Hurd. 339 [B. Douglas Hilton <doug.hilton@engineer.com>] 340 341 *) Completely rewrote the "hard syscall mapping". 342 343 Previously the internal syscall exit points were based on syscall(2) 344 only. This is problematic because it by-passes the C library glue 345 code which sometimes performs necessary assembly fiddling in order 346 to call the underlying system calls correctly. Additionally, 347 syscall(2) does not exists everywhere. 348 349 Now the internal exit points are based on a by-syscall dynamically 350 selected combination of RTLD_NEXT+dlsym(2), dlopen(2)+dlsym(2) and 351 the known syscall(2) (in this fallback order). This way the "hard 352 syscall mapping" is a lot more portable and flexible. 353 [Ralf S. Engelschall, Jonathan Schilling <jls@sco.com>] 354 355 *) Added support to pth_poll(3) for the poll(2) XPG.4 flags 356 POLLD{RD,WR}{NORM,BAND}. 357 [Jason Evans <jasone@canonware.com>, Ralf S. Engelschall] 358 359 *) Fixed a long-standing termination bug in pth_exit(3): 360 The event handler of pth_exit(3) didn't let pth_exit(3) finish if 361 there were any threads on the "dead queue" (where non-detached 362 terminated threads are put). Instead it re-entered the scheduler 363 which in turn aborted with "**Pth** SCHEDULER INTERNAL ERROR: no 364 more thread(s) available to schedule!?!?". This is now fixed by 365 not counting the "dead queue" for the determination whether the 366 process as a whole should terminate or not. 367 [Jonathan Schilling <jls@sco.com>] 368 369 *) The manual page stated that system(3) is supported in the 370 "Soft System Call Mapping", but in fact it was forgotten in the 371 implementation. 372 [Jonathan Schilling <jls@sco.com>] 373 374 *) Add #define _PTHREAD_T to pthread.h to guard under SCO UnixWare 7 375 and OpenUNIX 8. 376 [Jonathan Schilling <jls@sco.com>] 377 378 *) Upgraded to Autoconf 2.54 environment and cleaned up internal 379 Autoconf macro usage. 380 [Ralf S. Engelschall] 381 382 *) Fixed lots of English errors in the manual page. 383 [Felix Berger <bflat1@gmx.net>] 384 385 *) Add optional support for OSSP ex based exception handling. GNU 386 Pth (still) does not throw exceptions by itself, but handles the 387 per-thread exception context of OSSP ex to make exception handling 388 local to a thread. 389 [Ralf S. Engelschall] 390 391 *) Removed all generated files from CVS. 392 Use OSSP devtool stuff to re-generate files on demand. 393 Switched to Autoconf 2.52 and Libtool 1.4.2 environment. 394 [Ralf S. Engelschall] 395 396 _ _ _ 397 / || || | 398 | || || |_ 399 | ||__ _| 400 __|_(_) |_|_____________________________________________________________ 401 402 Changes between 1.4.0 and 1.4.1 (24-Mar-2001 to 27-Jan-2002) 403 404 *) Internally make sure an invalid file-descriptor (integer not 405 between 0 and (FD_SETSIZE-1) does not lead to any segfaults or 406 other undefined behaviour. Instead an error is returned and errno 407 is set to EBADF, similar to what the OS functions do. Especially 408 pth_poll() now return with this error (instead of skipping the fd) 409 if an fd in the "struct pollfd" is invalid. 410 [Ralf S. Engelschall, Archie Cobbs <archie@packetdesign.com>] 411 412 *) Correctly support PTH_FDMODE_NONBLOCK in pth_connect and pth_accept. 413 [Archie Cobbs <archie@packetdesign.com>] 414 415 *) Fixed typos in manual page. 416 [Michael Schloh v. Bennewitz <michael.schloh@de.cw.net>, 417 Takashi Ishihara <tishihara@ucdavis.edu>] 418 419 *) For portability reasons changed definition of PTH_EXT_SFIO to 0/1 420 instead of FALSE/TRUE because some external definitions use a 421 casted value and hence make trouble on plain #if constructs. 422 [Staehli Patrik <patrik.staehli@siemens.ch>] 423 424 *) Fixed return value (number of occurred events) of pth_wait(). 425 [David Dureau <david.dureau@cea.fr>] 426 427 *) Replaced thread-unsafe usage of a static struct iovec in 428 pth_writev_ev() with a thread-safe stack/heap-based solution. 429 [Ralf S. Engelschall, Mark Burton <markb@ordern.com>] 430 431 *) Replaced antiquated PTH_FLAG_NOJOIN references with the correct 432 PTH_ATTR_JOINABLE references in the manual page. 433 [Takashi Ishihara <tishihara@ucdavis.edu>] 434 435 *) Fixed a (not very subtle) bug in pth_writev_ev() that screwed up 436 output if a partial write happened. 437 [Mark Burton <markb@ordern.com>] 438 439 *) Fixed static initializers PTH_BARRIER_INIT and PTH_COND_INIT. 440 [Shawn Wagner <shawnw@speakeasy.org>] 441 442 *) Typo fixes in pth.pod 443 [<collver@linuxfreemail.com>] 444 445 *) Upgraded to GNU shtool, version 1.5.4. 446 [Ralf S. Engelschall] 447 448 *) Fixed "make striptease": pth_string.c was not included and some 449 commands which were removed at all (and this way causes syntax 450 errors) will be now correctly commented out with ":" commands. 451 [Paolo Bonzini <bonzini@pc-amo3.elet.polimi.it>] 452 453 *) Fixed pth.pod: a closing angle bracket was missing, leading to 454 incorrect POD to XXXX formatting. 455 [Ralf S. Engelschall] 456 457 Changes between 1.4a3 and 1.4.0 (29-Jul-2000 to 24-Mar-2001) 458 459 *) Added PTHREAD_PRIO_XXXX definitions to pthread.h for 460 conformance to the POSIX/SUSv2 Pthread API. 461 [Ralf S. Engelschall, Bill Apt <babt@us.ibm.com>] 462 463 *) Implemented the pthread_{set,get}concurrency() API parts of 464 POSIX/SUSv2, although internally we are (allowed to be) free to not 465 do anything based on the requested level. 466 [Ralf S. Engelschall, Bill Apt <babt@us.ibm.com>] 467 468 *) Adjusted all pthread_attr_getXXXX() functions to use a "const 469 pthread_attr_t *" as the first argument instead of "pthread_attr_t 470 *" to fully-conform to POSIX/SUSv2. 471 [Ralf S. Engelschall, Bill Apt <babt@us.ibm.com>] 472 473 *) Added ENOSYS-stubs for pthread_attr_{set,get}guardsize() 474 to the Pthread API to be more complete with POSIX/SUSv2 specs. 475 [Ralf S. Engelschall, Bill Apt <babt@us.ibm.com>] 476 477 *) Added still missing soft system call mapping to Pth and Pthread 478 APIs for functions recv(2), send(2), recvfrom(2) and sendto(2). 479 [Ralf S. Engelschall, Bill Apt <babt@us.ibm.com>] 480 481 *) Upgraded to GNU shtool 1.5.2 482 [Ralf S. Engelschall] 483 484 *) Fixed an even-manager bug which causes a thread that calls 485 pth_nap() to never woke up if the only elapsed event was a timer. 486 [Archie Cobbs <archie@packetdesign.com>] 487 488 *) Added `#define _BITS_SIGTHREAD_H' to pthread.h to avoid inclusion 489 of bits/sigthread.h (from signal.h) on Linux running glibc6 2.2. 490 [Tomas Pihl <tomas.pihl@netinsight.net>] 491 492 *) Added support to Makefile.in for DESTDIR variable. This allows 493 easier rolling of installation tarballs (for instance from within 494 RPM or similar facilities) by using "make install DESTDIR=/tmp/pth". 495 [Brad Smith <brad@comstyle.com>, Ralf S. Engelschall] 496 497 *) Implemented a pth_system(3) function which is a thread-aware 498 clone of the POSIX system(2) function. 499 [Ralf S. Engelschall] 500 501 *) Fixed typos in pth.pod: "fd" -> "s" for pth_connect/pth_accept. 502 [Sebastian <scut@nb.in-berlin.de>] 503 504 *) Make --disable-shared the default under Solaris-2.[78]/x86, because 505 it is known to segfault sporadically if Pth is built as a DSO. As 506 traces showed, it is not a Pth problem, but it looks like a problem with 507 the dynamic linker on Solaris/x86. The same Solaris versions on SPARC 508 don't have this problem. 509 [Ralf S. Engelschall] 510 511 *) Updated copyright messages to cover new year 2001. 512 [Ralf S. Engelschall] 513 514 *) Fixed quoting in configure.in 515 [Ralf S. Engelschall] 516 517 *) Let pth_sleep(3) and pth_usleep(3) immediately return 518 if an argument of zero is given. 519 [Ralf S. Engelschall] 520 521 *) Fixed pthread.pod: the newer pod2man versions seems to dislike 522 embedded comments, so I moved them to the top of the file. 523 [Ralf S. Engelschall] 524 525 *) Changed CVS URL in HACKING document. 526 [Ralf S. Engelschall] 527 528 *) Mention http://www.mail-archive.com/pth-users@gnu.org/ in pth.pod 529 and SUPPORT document. 530 [Ralf S. Engelschall] 531 532 Changes between 1.4a2 and 1.4a3 (01-Jul-2000 to 29-Jul-2000) 533 534 *) Upgraded to GNU shtool 1.5.1 535 [Ralf S. Engelschall] 536 537 *) Fixed (unused) pth_time_mul() function: operator & replaced by % 538 [Tim Harris <tim.harris@snellwilcox.com>] 539 540 *) Use --disable-lock for ltconfig. 541 [Ralf S. Engelschall] 542 543 *) Fixed a few typos in pth.pod. 544 [Thomas Klausner <wiz@danbala.tuwien.ac.at>] 545 546 Changes between 1.4a1 and 1.4a2 (16-Apr-2000 to 01-Jul-2000) 547 548 *) Upgraded to GNU Shtool 1.5.0 549 [Ralf S. Engelschall] 550 551 *) Added OS/390 support to config.sub. 552 [Greg Ames <gregames@raleigh.ibm.com>] 553 554 *) Upgraded rse-pmt.ps paper to latest version as it was 555 published on USENIX 2000. 556 [Ralf S. Engelschall] 557 558 *) Stack boundary fixes for Interactive Unix support 559 (--with-mctx-dsp=sjljisc). This allows one also to use this 560 variant for Interix on Window-NT (a POSIX.1 compliant subsystem). 561 [Kim Jongsu <kimjs@moasys.com>] 562 563 *) Upgraded to GNU Libtool 1.3.5 564 [Ralf S. Engelschall] 565 566 *) Fixed config.param parsing: IF is now also allowed on 567 VARIABLE=VALUE lines. 568 [Ralf S. Engelschall] 569 570 *) Allow for convinience reasons pth_usleep() to accept also 571 arguments greater than 1000000. 572 [Harvinder Sawhney <hsawhney@hotmail.com>] 573 574 *) Updated HACKING document. 575 [Ralf S. Engelschall] 576 577 *) Fixed warnings in pth_string.c related to va_arg() usage 578 and implicit type conversions. 579 [Ralf S. Engelschall] 580 581 *) Merge from Pth 1.3.5: 582 Fixed the <sys/select.h> checks in Autoconf: the logic 583 was reversed and this way <sys/select.h> wasn't included on 584 platforms were it existed and included where it wasn't present. 585 [M. Lavasani <lavasani@connect.org.uk>] 586 587 Changes between 1.3.3 and 1.4a1 (10-Mar-2000 to 16-Apr-2000) 588 589 *) Added a new feature to config.param: parameters can be extended 590 with ``<space>IF<space><shell-test>''. Then the preceeding 591 parameter is only added to the command line if the <shell-test> 592 returns 0. <shell-test> can be anything which is possible in a 593 Bourne-Shell `if' construct's expression. 594 [Ralf S. Engelschall] 595 596 *) Fixed usage of `volatile' qualifier in pointer context. 597 [Ralf S. Engelschall] 598 599 *) Now check also for -Wno-long-long compiler option under 600 --enable-debug, because pth_string.c contains `long long' stuff. 601 [Ralf S. Engelschall] 602 603 *) Now pth.h and pthread.h include the non-standard <sys/select.h> 604 header on brain-dead platforms (like AIX) to get the definition of 605 fd_set (which is required for the pth_select prototype). 606 [Ralf S. Engelschall, Stian Seeberg <stian@nimsoft.no>] 607 608 *) Fixed auto-configuration for ISC and Win32/Cygwin platforms. 609 [Ralf S. Engelschall, Giwon On <Giwon.On@KOM.tu-darmstadt.de>] 610 611 *) Removed -L. from $(LDFLAGS) in Makefile.in, because this 612 is not required (libtool already takes care of this). 613 [Ralf S. Engelschall] 614 615 *) Added a RPM spec file pth.spec which allows one to build RPM 616 packages directly from the Pth distribution tarball through a 617 simple `rpm -tb pth-1.X.Y.tar.gz' call. 618 [Daniel Richard G. <straker@MIT.EDU>] 619 620 *) Removed the too explicit `-m 644' from the libtool/shtool 621 installation command for libpth.la and instead use a `umask 022'. 622 The reason is because some platforms require the shared libraries 623 to be executable, so we cannot use an explicit mode. But we use the 624 umask to make sure we don't result in world or group writeable files. 625 [Ralf S. Engelschall, Daniel Richard G. <straker@MIT.EDU>] 626 627 *) Use full-path /sbin/sysctl in config.guess on FreeBSD because 628 not all users have /sbin in their $PATH. 629 [Jeff Trawick <trawick@ibm.net>] 630 631 *) Added eight new I/O functions pth_{recv,recvfrom,send,sendto}[_ev](3) 632 which correspond to the counterparts in UNIX98 (SUSv2). 633 [Ralf S. Engelschall] 634 635 *) Replaced for security reasons sprintf() and vsprintf() calls 636 with own pth_snprintf() and pth_vsnprintf() functions from the new 637 pth_string.c source. 638 [Ralf S. Engelschall] 639 640 *) Speeded up pth_ring_t handling by inlining code and by maintaining 641 number of contained nodes explicitly to avoid an O(n) operation when 642 the number of elements are requested. 643 [Ralf S. Engelschall] 644 645 *) Upgraded to GNU shtool 1.4.9 646 [Ralf S. Engelschall] 647 648 _ _____ 649 / | |___ / 650 | | |_ \ 651 | |_ ___) | 652 __|_(_)____/____________________________________________________________ 653 654 Changes between 1.3.6 and 1.3.7 (01-Jul-2000 to 29-Jul-2000) 655 656 *) Backport from GNU Pth 1.4a3: 657 Upgraded to GNU shtool 1.5.1. This fixes especially the 658 compilation problems under Solaris which were caused by a too 659 unportable `shtool version' command from 1.5.0. 660 [Ralf S. Engelschall] 661 662 *) Backport from GNU Pth 1.4a3: 663 Fixed (unused) pth_time_mul() function: operator & replaced by % 664 [Tim Harris <tim.harris@snellwilcox.com>] 665 666 Changes between 1.3.5 and 1.3.6 (17-Apr-2000 to 01-Jul-2000) 667 668 *) Backport from GNU Pth 1.4a2: 669 Upgraded to GNU Shtool 1.5.0 670 [Ralf S. Engelschall] 671 672 *) Backport from GNU Pth 1.4a2: 673 Added OS/390 support to config.sub. 674 [Greg Ames <gregames@raleigh.ibm.com>] 675 676 *) Backport from GNU Pth 1.4a2: 677 Upgraded rse-pmt.ps paper to latest version as it was 678 published on USENIX 2000. 679 [Ralf S. Engelschall] 680 681 *) Backport from GNU Pth 1.4a2: 682 Upgraded to GNU libtool 1.3.5 683 [Ralf S. Engelschall] 684 685 *) Backport from GNU Pth 1.4a2: 686 Allow for convinience reasons pth_usleep() to accept also 687 arguments greater than 1000000. 688 [Harvinder Sawhney <hsawhney@hotmail.com>] 689 690 Changes between 1.3.4 and 1.3.5 (16-Apr-2000 to 17-Apr-2000) 691 692 *) Fixed the <sys/select.h> checks in Autoconf: the logic 693 was reversed and this way <sys/select.h> wasn't included on 694 platforms were it existed and included where it wasn't present. 695 [M. Lavasani <lavasani@connect.org.uk>] 696 697 Changes between 1.3.3 and 1.3.4 (10-Mar-2000 to 16-Apr-2000) 698 699 *) Merged from Pth 1.4a1: 700 Fixed usage of `volatile' qualifier in pointer context. 701 [Ralf S. Engelschall] 702 703 *) Merged from Pth 1.4a1: 704 Now pth.h and pthread.h include the non-standard <sys/select.h> 705 header on brain-dead platforms (like AIX) to get the definition of 706 fd_set (which is required for the pth_select prototype). 707 [Ralf S. Engelschall, Stian Seeberg <stian@nimsoft.no>] 708 709 *) Merged from Pth 1.4a1: 710 Fixed auto-configuration for ISC and Win32/Cygwin platforms. 711 [Ralf S. Engelschall, Giwon On <Giwon.On@KOM.tu-darmstadt.de>] 712 713 *) Merged from Pth 1.4a1: 714 Removed -L. from $(LDFLAGS) in Makefile.in, because this 715 is not required (libtool already takes care of this). 716 [Ralf S. Engelschall] 717 718 *) Merged from Pth 1.4a1: 719 Removed the too explicit `-m 644' from the libtool/shtool 720 installation command for libpth.la and instead use a `umask 022'. 721 The reason is because some platforms require the shared libraries 722 to be executable, so we cannot use an explicit mode. But we use the 723 umask to make sure we don't result in world or group writeable files. 724 [Ralf S. Engelschall, Daniel Richard G. <straker@MIT.EDU>] 725 726 *) Merged from Pth 1.4a1: 727 Use full-path /sbin/sysctl in config.guess on FreeBSD because 728 not all users have /sbin in their $PATH. 729 [Jeff Trawick <trawick@ibm.net>] 730 731 *) Merged from Pth 1.4a1: 732 Upgraded to GNU shtool 1.4.9 733 [Ralf S. Engelschall] 734 735 Changes between 1.3.2 and 1.3.3 (24-Feb-2000 to 10-Mar-2000) 736 737 *) Under Solaris and --enable-optimize we now also check for the 738 compiler option -fast which is supported by the Sun vendor compilers. 739 [Ralf S. Engelschall] 740 741 *) Fixed AC_COMPILER_OPTION macro in aclocal.m4: it wasn't aware of 742 the fact that running gcc with not supported options just leads to a 743 warning (but gcc still compiles the test program and exists with a 0 744 return value). 745 [Ralf S. Engelschall] 746 747 *) Fixed semantics of pth_cond_notify() to match POSIX: if one 748 notifies a condition variable which has still no waiter, the notify 749 operation is a no-op. Previously the condition signal was remembered 750 until a waiter arrived. This is now no longer the case. 751 [Ralf S. Engelschall, Chris Leishman <chris_leishman@freeonline.com.au>] 752 753 *) Allow pth_yield(<tid>) to yield also to <tid> if <tid> is a 754 freshly spawned thread, i.e. in state PTH_STATE_NEW instead of 755 PTH_STATE_READY, directly after a pth_spawn. This allows one better 756 control under co-routine programming. 757 [Ralf S. Engelschall] 758 759 *) Fixed internal pth_pqueue_delete() and pth_pqueue_tail() 760 functions to pth_pqueue.c for convinience reasons. 761 [Ralf S. Engelschall] 762 763 *) API CHANGE: Changed pth_time(int,int) to pth_time(long,long) and 764 pth_timeout(int,int) to pth_timeout(long,long), because pth_time_t 765 is a struct timeval and this structure is defined always via two 766 long's and not just int's. 767 [Ralf S. Engelschall] 768 769 *) Cleaned up source code even more by making sure "signed", 770 "unsigned" and "const" qualifiers are used correctly and 771 consistently. 772 [Ralf S. Engelschall] 773 774 *) Changed default stack size from 32KB to 64KB, because 775 on Solaris and other platforms where one can set FD_SETSIZE to 776 values up to 65535 an fd_set is up to 8KB. Pth internally (in 777 the scheduler in pth_select_ev) has up to three fd_sets (up to 778 24KB) on the stack, so a 32KB stack is too risky. Nevertheless 779 one can still spawn threads with smaller stacks by using 780 PTH_ATTR_STACK_SIZE, of course. Only the scheduler thread remains 781 with a 64KB stack, because this thread cannot be configured by the 782 application. 783 [Ralf S. Engelschall] 784 785 *) Fixed "make depend": a backslash was missing. 786 [Edwin Brown <Edwin.Brown@sdrc.com>] 787 788 *) Fixed "make install" for pth.m4 and the situation where 789 one compiles from a different sub-directory. 790 [Raphael Bossek <raphael.bossek@solutions4linux.de>] 791 792 Changes between 1.3.1 and 1.3.2 (20-Feb-2000 to 24-Feb-2000) 793 794 *) Do no longer use -woff in CFLAGS for IRIX 6.5.2 and above. 795 [Edwin Brown <Edwin.Brown@sdrc.com>, Ralf S. Engelschall] 796 797 *) Replaced ``while (1)'' constructs with ``for (;;)'' because some 798 compilers like this more and do not warn about constant expressions. 799 [Ralf S. Engelschall] 800 801 *) Added hint to pth.pod that ``pth_join(<tid>, NULL)'' is allowed. 802 [Ralf S. Engelschall] 803 804 *) Cancel and join the ticker thread explicitly in test_select.c 805 [Edwin Brown <Edwin.Brown@sdrc.com>, Ralf S. Engelschall] 806 807 *) Removed unnecessary code in pth_event.c 808 [Edwin Brown <Edwin.Brown@sdrc.com>, Ralf S. Engelschall] 809 810 *) Add special namespace workarounds to pthread.h.in for HPUX 811 platforms where the pthread_kill() prototypes conflict without this. 812 [M. Lavasani <lavasani@connect.org.uk>, Ralf S. Engelschall] 813 814 Changes between 1.3.0 and 1.3.1 (19-Feb-2000 to 20-Feb-2000) 815 816 *) Added HISTORY document where we now write down the evolution 817 and release dates of Pth to have a concise history reference. 818 [Ralf S. Engelschall] 819 820 *) Added USERS document where we now collect references to 821 software packages utilizing GNU Pth. 822 [Ralf S. Engelschall] 823 824 *) Fixed a subtle typo in pth.pod about thread-safe functions 825 and finished documentation of pth_attr_set/pth_attr_get functions. 826 [James Robinson <jlrobins@uncc.edu>, Jeremie <jeremie@jabber.org>] 827 828 Changes between 1.3b3 and 1.3.0 (13-Feb-2000 to 19-Feb-2000) 829 830 *) Polished the various document files. 831 [Ralf S. Engelschall] 832 833 *) Use -w in $CFLAGS also on UnixWare 2.1, because its cc 834 complains about "not reached" situations because of our macros. 835 [Ralf S. Engelschall] 836 837 *) Replaced "NOT REACHED" with "NOTREACHED" in comments 838 to be more correct for lint(1). 839 [Ralf S. Engelschall] 840 841 *) Updated config.param and fixed its parsing procedure. 842 [Ralf S. Engelschall] 843 844 *) Fixed a few typos in pth.pod and adjusted example program 845 to make sure it doesn't segfault accidently for the users. 846 [Tim Harris <tim_harris@snellwilcox.com>, Raphael Bossek 847 <raphael.bossek@solutions4linux.de>, Ralf S. Engelschall] 848 849 Changes between 1.3b2 and 1.3b3 (28-Jan-2000 to 13-Feb-2000) 850 851 *) Fixed PTH_EVENT_FUNC handling (it was not polled really 852 in regular intervals if there were no other FUNC events which 853 helped) by extending it with an interval time argument. This way 854 a PTH_EVENT_FUNC event is likewise a PTH_EVENT_TIME event which 855 calls the check function after elapsing and resets itself again if 856 it failed. 857 [Ralf S. Engelschall] 858 859 *) Removed PTH_EVENT_PID because the waiting on a process id was not 860 working as expected (the polling was not done in intervals) and this 861 type of event doesn't really fit very well into the multi-threading 862 environment of Pth (where the events should be thread-related and not 863 process-related). So instead of fixing the pid waiting event handling 864 through some unclean workarounds or kludges (it cannot be done very 865 different), it was decided to kick it out at all. 866 [Ralf S. Engelschall] 867 868 *) Make sure pth_connect[_ev]() doesn't block by internally 869 switching to non-blocking mode temporarily if necessary. 870 [Chris Leishman <chris_leishman@freeonline.com.au>, Ralf S. Engelschall] 871 872 *) Fix pthread_cond_timedwait by making it more POSIX compliant: 873 return ETIMEDOUT instead of 0 if the timeout occurred. 874 [Emanuele Fornara <efornara@hotmail.com>, Ralf S. Engelschall] 875 876 Changes between 1.3b1 and 1.3b2 (26-Jan-2000 to 28-Jan-2000) 877 878 *) Let "make striptease" be aware of $TMPDIR and remove temporary 879 directory from this dir, too. 880 [Ralf S. Engelschall] 881 882 *) Again cleaned up and enhanced the manual page pth.pod. 883 [Ralf S. Engelschall] 884 885 *) Added a few more errno_shield { ... } sections to prevent 886 the destruction of errno values on error returns. 887 [Ralf S. Engelschall] 888 889 *) Added more complete Linux support for --enable-syscall-hard by 890 using SYS_socketcall+SOCKOP_{accept,connect} if 891 SYS_{accept,connect} doesn't exist. 892 [Ralf S. Engelschall] 893 894 *) Added pth_suspend() and pth_resume together with an additional 895 SUSPENDED queue. This can be used to temporarily park threads in 896 order to move them out of the schedulers scope. 897 [Ralf S. Engelschall] 898 899 Changes between 1.3a5 and 1.3b1 (15-Jan-2000 to 26-Jan-2000) 900 901 *) Completely cleaned up the manual page. 902 [Eric Hanchrow <offby1@blarg.net>] 903 904 *) Use SYS__newselect instead of SYS_select under Linux and 905 --enable-syscall-hard because SYS_select is a dummy stub which 906 always just returns -1 and errno = EFAULT. 907 [Artem Gr <artem@bizlink.ru>, Ralf S. Engelschall] 908 909 Changes between 1.3a4 and 1.3a5 (08-Jan-2000 to 15-Jan-2000) 910 911 *) Updated HACKING document. 912 [Ralf S. Engelschall] 913 914 *) Removed '+DAportable' from HPUX flags to avoid problems. 915 [M. Lavasani <lavasani@connect.org.uk>] 916 917 *) Added a workround in Makefile.in (replaced "rm -r" with 918 "rm" + "rmdir") for brain-dead AmigaOS. 919 [Kriton Kyrimis <kyrimis@cti.gr>] 920 921 *) Fixed example in Pth manual page: peer_len wasn't initialized. 922 [Sami Niemi <saminiemi@usa.net>, Ralf S. Engelschall] 923 924 *) Fixed cleanup handling in test_sig.c. 925 [Ralf S. Engelschall] 926 927 *) Fixed memory leaks in some test programs. 928 [Ralf S. Engelschall] 929 930 Changes between 1.3a3 and 1.3a4 (08-Jan-2000 to 08-Jan-2000) 931 932 *) Translated The Open Group's SUSv2 Threading HTML documentation 933 into POD format to form an appendix for pthread.pod. This is for 934 convinience reasons when programming with the Pthread API of GNU Pth. 935 [Ralf S. Engelschall] 936 937 *) Fixed introduced debugging with "==== THREAD CONTEXT SWITCH ====" 938 lines. They were printed always. 939 [Ralf S. Engelschall] 940 941 Changes between 1.3a2 and 1.3a3 (30-Dec-1999 to 08-Jan-2000) 942 943 *) Added a PTH_CTRL_DUMPSTATE to pth_ctrl() which helps in debugging. 944 a pth_ctrl(PTH_CTRL_DUMPSTATE, stderr) for instance writes out a summary 945 page of the internal Pth library state to stderr. This is intended for 946 debugging purposes only, of course. 947 [Ralf S. Engelschall, Lubos Lunak <l.lunak@sh.cvut.cz>] 948 949 *) Fixed destructor for statically initialized events which failed 950 under asynchronous cancellation if those events were merged 951 together at the time of cancellation. 952 [Igor A. Minyukoff, Ralf S. Engelschall] 953 954 *) Updated the INSTALL document. 955 [Ralf S. Engelschall] 956 957 *) Fixed a memory leak in pth_kill(): the TCBs (plus one 958 stack) of the main and scheduler thread were not freed. 959 [Pete <pfv@grex.org>, Ralf S. Engelschall] 960 961 *) Added developer support for compiling and linking against the 962 Dmalloc library (for debugging memory allocation) through the 963 --with-dmalloc[=DIR] Autoconf option. 964 [Ralf S. Engelschall] 965 966 *) Fixed pth_compat.c: the #define for strerror was buggy. 967 [Ralf S. Engelschall] 968 969 Changes between 1.3a1 and 1.3a2 (09-Nov-1999 to 30-Dec-1999) 970 971 *) Added first cut of experimental Win32 support through Cygwin B20.1. 972 [Ralf S. Engelschall, Schizoid <schizoid21@yahoo.com>] 973 974 *) Fixed autoheader step by using AC_CHECK_HEADERS() instead of 975 AC_CHECK_HEADER() because Autoconf's autoheader.m4 isn't aware of 976 AC_CHECK_HEADER(). 977 [Ralf S. Engelschall] 978 979 *) Adjusted all copyright messages to include the forthcoming 980 new year 2000, too. 981 [Ralf S. Engelschall] 982 983 *) Fixed $DIFS in pth-config.in and pthread-config.in 984 (the tab was lost) and cleaned up pth-config.in a little bit. 985 [Ralf S. Engelschall] 986 987 *) Upgraded from GNU libtool 1.3.3 to 1.3.4 988 and from GNU shtool 1.4.6 to 1.4.7. 989 [Ralf S. Engelschall] 990 991 *) Fixed cleanup handling for main thread. Now pth_kill() 992 and pth_exit() in the main thread work as expected. 993 [Ralf S. Engelschall, Anton Umnikov <anton@uic.dvgu.ru>] 994 995 *) Fixed Autoconf --host option. 996 [Ralf S. Engelschall, Kent Overstreet <kent@hotmail.com>] 997 998 *) Fixed pth_mctx.c by making sure ss_base is mapped to ss_sp 999 only if sigaltstack(2) is used for the stack trick. 1000 [Kriton Kyrimis <kyrimis@cti.gr>] 1001 1002 *) Fixed return code semantics for error situation in both 1003 pth_write(3) and pth_writev(3). 1004 [Rob Quinn <rquinn@sec.sprint.net>, Ralf S. Engelschall] 1005 1006 *) Stripped trailing whitespaces from all source files. 1007 [Ralf S. Engelschall] 1008 1009 Changes between 1.2.0 and 1.3a1 (31-Oct-1999 to 09-Nov-1999) 1010 1011 *) Changed AC_CHECK_STRUCTATTR macro from a too weak AC_TRY_EGREP to a 1012 AC_TRY_LINK based approach to make sure the ss_sp/ss_base checks do not 1013 fail on platforms where sys/signal.h contains both sigstack and 1014 sigaltstack defines. 1015 [Ralf S. Engelschall] 1016 1017 *) Added a large "BUILD ENVIRONMENT" section to pth.pod which describes 1018 three ways to establish build environments for Pth based packages. 1019 [Ralf S. Engelschall] 1020 1021 *) Updated the pth-config.pod and pthread-config.pod for 1022 missing option entries. 1023 [Ralf S. Engelschall] 1024 1025 *) Added --datadir and --acdir options to pth-config. Especially 1026 --acdir can be used in conjunction with Autoconf's aclocal program to 1027 retrieve the AC_CHECK_PTH macro, e.g. aclocal --output- 1028 --acdir=`pth-config --acdir` prints the macro definition to stdout. 1029 [Ralf S. Engelschall] 1030 1031 *) Added a new, very flexible and robust pth.m4 Autoconf macro file which 1032 is installed under $datadir/aclocal/ and can be used by third-party 1033 Autoconf scripts to locate GNU Pth. Syntax is: 1034 AC_CHECK_PTH([MIN-VERSION [,DEFAULT-WITH-PTH [,DEFAULT-WITH-PTH-TEST 1035 [,EXTEND-VARS [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]]]]]]). 1036 [Ralf S. Engelschall, Markus Fischer <mfischer@josefine.ben.tuwien.ac.at>] 1037 1038 *) Added PTH_VERSION_{STR,HEX} to pth.h 1039 [Ralf S. Engelschall] 1040 1041 *) Fixed AC_CHECK_EXTLIB macro. 1042 [Ralf S. Engelschall] 1043 1044 *) Added a new developer target `make striptease' which uses the 1045 new striptease.{pl,mk} files to strip down the Pth source tree to a 1046 minimum (approx. 1/3 of size). The generated striptease.dir/ area can be 1047 then imported into third-party source trees and there blows up the stuff 1048 only as minimal as possible. 1049 [Ralf S. Engelschall] 1050 1051 *) Cleaned up copyright messages in source files. 1052 [Ralf S. Engelschall] 1053 1054 *) Rewritten the Linux guessing part in config.guess to 1055 create more useful GNU platform triples for Linux flavors. 1056 [Ralf S. Engelschall] 1057 1058 _ ____ 1059 / | |___ \ 1060 | | __) | 1061 | |_ / __/ 1062 __|_(_)_____|___________________________________________________________ 1063 1064 Changes between 1.2.2 and 1.2.3 (08-Jan-2000 to 04-Feb-2000) 1065 1066 *) Backport from Pth 1.3b3: 1067 Fix pthread_cond_timedwait by making it more POSIX compliant: 1068 return ETIMEDOUT instead of 0 if the timeout occurred. 1069 [Emanuele Fornara <efornara@hotmail.com>, Ralf S. Engelschall] 1070 1071 *) Backport from Pth 1.3b2: 1072 Added more complete Linux support for --enable-syscall-hard by 1073 using SYS_socketcall+SOCKOP_{accept,connect} if 1074 SYS_{accept,connect} doesn't exist. 1075 [Ralf S. Engelschall] 1076 1077 *) Backport from Pth 1.3b2: 1078 Added a few more errno_shield { ... } sections to prevent 1079 the destruction of errno values on error returns. 1080 [Ralf S. Engelschall] 1081 1082 *) Backport from Pth 1.3b1: 1083 Use SYS__newselect instead of SYS_select under Linux and 1084 --enable-syscall-hard because SYS_select is a dummy stub which 1085 always just returns -1 and errno = EFAULT. 1086 [Artem Gr <artem@bizlink.ru>, Ralf S. Engelschall] 1087 1088 *) Backport from Pth 1.3a5: 1089 Removed '+DAportable' from HPUX flags to avoid problems. 1090 [M. Lavasani <lavasani@connect.org.uk>] 1091 1092 *) Backport from Pth 1.3a5: 1093 Added a workround in Makefile.in (replaced "rm -r" with 1094 "rm" + "rmdir") for brain-dead AmigaOS. 1095 [Kriton Kyrimis <kyrimis@cti.gr>] 1096 1097 *) Backport from Pth 1.3a5: 1098 Fixed example in Pth manual page: peer_len wasn't initialized. 1099 [Sami Niemi <saminiemi@usa.net>, Ralf S. Engelschall] 1100 1101 *) Backport from Pth 1.3a5: 1102 Fixed memory leaks in some test programs. 1103 [Ralf S. Engelschall] 1104 1105 Changes between 1.2.1 and 1.2.2 (14-Nov-1999 to 08-Jan-2000) 1106 1107 *) Backport from Pth 1.3a3: 1108 Updated the INSTALL document. 1109 [Ralf S. Engelschall] 1110 1111 *) Backport from Pth 1.3a3: 1112 Fixed a memory leak in pth_kill(): the TCBs (plus one 1113 stack) of the main and scheduler thread were not freed. 1114 [Pete <pfv@grex.org>, Ralf S. Engelschall] 1115 1116 *) Backport from Pth 1.3a3: 1117 Fixed pth_compat.c: the #define for strerror was buggy. 1118 [Ralf S. Engelschall] 1119 1120 *) Backport from Pth 1.3a3: 1121 Fixed destructor for statically initialized events which failed 1122 under asynchronous cancellation if those events were merged 1123 together at the time of cancellation. 1124 [Igor A. Minyukoff, Ralf S. Engelschall] 1125 1126 *) Backport from Pth 1.3a2: 1127 Upgraded from GNU libtool 1.3.3 to 1.3.4 1128 and from GNU shtool 1.4.6 to 1.4.7. 1129 [Ralf S. Engelschall] 1130 1131 *) Backport from Pth 1.3a2: 1132 Fixed pth_mctx.c by making sure ss_base is mapped to ss_sp 1133 only if sigaltstack(2) is used for the stack trick. 1134 [Kriton Kyrimis <kyrimis@cti.gr>] 1135 1136 Changes between 1.2.0 and 1.2.1 (31-Oct-1999 to 14-Nov-1999) 1137 1138 *) Backport from Pth 1.3a2: 1139 Fixed return code semantics for error situation in both 1140 pth_write(3) and pth_writev(3). 1141 [Rob Quinn <rquinn@sec.sprint.net>, Ralf S. Engelschall] 1142 1143 *) Backport from Pth 1.3a1: 1144 Changed AC_CHECK_STRUCTATTR macro from a too weak AC_TRY_EGREP to a 1145 AC_TRY_LINK based approach to make sure the ss_sp/ss_base checks do not 1146 fail on platforms where sys/signal.h contains both sigstack and 1147 sigaltstack defines. 1148 [Ralf S. Engelschall] 1149 1150 *) Backport from Pth 1.3a1: 1151 Fixed AC_CHECK_EXTLIB macro. 1152 [Ralf S. Engelschall] 1153 1154 *) Backport from Pth 1.3a1: 1155 Cleaned up copyright messages in source files. 1156 [Ralf S. Engelschall] 1157 1158 Changes between 1.2b8 and 1.2.0 (26-Oct-1999 to 31-Oct-1999) 1159 1160 *) Finally tested the package on all major Unix platforms to which 1161 I've direct access (see PORTING document for details). 1162 [Ralf S. Engelschall] 1163 1164 *) Fixed a few remaining typos in pth.pod; adjusted README file for 1165 release and included ANNOUNCE document in source tree. 1166 [Ralf S. Engelschall] 1167 1168 *) Fixed special Autoconf detections for UnixWare 2.x platform. 1169 [Ralf S. Engelschall] 1170 1171 *) Fixed special Autoconf detections for Linux platforms. 1172 [Ralf S. Engelschall] 1173 1174 *) Updated INSTALL document. 1175 [Ralf S. Engelschall] 1176 1177 *) Added -w option to CFLAGS under HP-UX with CC. 1178 [Ralf S. Engelschall] 1179 1180 Changes between 1.2b7 and 1.2b8 (22-Oct-1999 to 26-Oct-1999) 1181 1182 *) Fixed Pthread compilation under NetBSD 1.4 and Solaris. The pth.h 1183 header has to skip the fallbacks (and not the pthread.h header) when 1184 compiling pthread.c. This subtle difference is important because 1185 ordering is important for correct namespace hiding. 1186 [Ralf S. Engelschall, John A. Maier <johnam@mail.kemper.org>] 1187 1188 *) Greatly enhanced AC_CHECK_ARGTYPE macro to support more 1189 vendor headers and their syntax. 1190 [Ralf S. Engelschall] 1191 1192 *) Added two new Autoconf options: --enable-maintainer for enabling 1193 maintainer targets (now the x.pod -> x.N translation is disabled per 1194 default and is enabled with this option only) and --enable-tests which 1195 is on per default and can be used (as --disable-tests) to disable the 1196 building of the test programs. 1197 [Ralf S. Engelschall] 1198 1199 *) Fixed autoheader processing with a new acheader.m4 file. 1200 [Ralf S. Engelschall] 1201 1202 *) Stripped down shtool script to 7 of 17 ingredients to reduce source 1203 tree by approx. 40KB. 1204 [Ralf S. Engelschall] 1205 1206 *) Updated acconfig.h: HAVE_NFDS_T was missing. 1207 [Ralf S. Engelschall] 1208 1209 *) Fixed `make dist': CVS temporary files (.#xx) were included 1210 into the distribution tarball. 1211 [Ralf S. Engelschall] 1212 1213 Changes between 1.2b6 and 1.2b7 (28-Sep-1999 to 22-Oct-1999) 1214 1215 *) Add the .gdbinit file also to the distribution tarball. 1216 [Ralf S. Engelschall] 1217 1218 *) Re-acquire the mutex corresponding to a condition variable when 1219 pth_cond_await() is cancelled, in order to restore the condition 1220 variable semantics. 1221 [Lubos Lunak <l.lunak@email.cz>] 1222 1223 *) Fixed cancellation point handling. 1224 [Lubos Lunak <l.lunak@email.cz>] 1225 1226 *) Added support for poll(2)'s POSIX nfds_t argument type. 1227 [Ralf S. Engelschall] 1228 1229 *) Fixed AC_CHECK_ARGTYPE: it now handles wrapped lines, too. 1230 [Ralf S. Engelschall] 1231 1232 *) Fixed regex in aclocal.m4: tabs were expanded to spaced. 1233 [Ralf S. Engelschall] 1234 1235 *) Fixed a casting problem related to `void *' in pth_high.c 1236 which g++ 2.95.1 hated. 1237 [Ralf S. Engelschall] 1238 1239 *) Replaced Autoconf AC_CHECK_FUNCS macro with an own local copy named 1240 AC_CHECK_FUNCTIONS which _always_ uses ``extern "C"'' if __cplusplus is 1241 defined. This way one can configure Pth even if $CC is a C++ compiler. 1242 [Ralf S. Engelschall] 1243 1244 *) Updated rse-pmt.ps document. 1245 [Ralf S. Engelschall] 1246 1247 *) Fixed a few typos in the manual page. 1248 [Ralf S. Engelschall] 1249 1250 *) Fixed aclocal.m4: CFXXLAGS -> CXXFLAGS ;) 1251 [Alexandre Oliva <oliva@dcc.unicamp.br>] 1252 1253 Changes between 1.2b5 and 1.2b6 (21-Sep-1999 to 28-Sep-1999) 1254 1255 *) Added platform support for GNU/Linux kernel 2.2 / glibc 2.1 1256 for both Alpha and Intel platforms via sjlj/ssjlj/sas. 1257 (tested with both RedHat 6.0 and SuSE 6.1) 1258 [Ralf S. Engelschall] 1259 1260 *) Added platform support for Tru64/OSF1 4.x and 5.0. 1261 [Ralf S. Engelschall] 1262 1263 *) Added --prefix, --bindir, --libdir, --includedir and --mandir 1264 options to pth-config and pthread-config. Mainly for convinience 1265 and consistency reasons. 1266 [Ralf S. Engelschall] 1267 1268 *) Avoid compiler complains in pth_mctx.c for assigning a `volatile 1269 sigset_t'. Instead use a plain memcpy() with sizeof(sigset_t). 1270 This now makes also IRIX' 6.5 cc happy. 1271 [Ralf S. Engelschall] 1272 1273 *) Fixed the Autoconf AC_CHECK_MCSC check which tests whether 1274 SVR4/SUSv2 makecontext(2), swapcontext(2) and friends can be used for 1275 user-space context switching. It was broken because the uc_link and 1276 uc_stack structure attributes were not initialized correctly. 1277 [Ralf S. Engelschall, Ben Harris <bjh21@cam.ac.uk>] 1278 1279 *) Updated dependencies in Makefile.in. 1280 [Ralf S. Engelschall] 1281 1282 *) Mention the new pth-users@gnu.org mailing list in SUPPORT 1283 and added hint to Makefile.in. 1284 [Ralf S. Engelschall] 1285 1286 Changes between 1.2b4 and 1.2b5 (17-Sep-1999 to 21-Sep-1999) 1287 1288 *) Added new Autoconf macro AC_COMPILER_OPTION which is now 1289 used to check whether -pipe, -ggdb3 and -W<xxx> really work 1290 before they are implicitly used. 1291 [Ralf S. Engelschall, Alexandre Oliva <oliva@dcc.unicamp.br>] 1292 1293 *) Make sure pthread.c compiles even if the platforms lacks `struct 1294 timespec'. The pthread_cond_timedwait() function will then still be 1295 unuseable by the application, of course. But that's the intended 1296 behavour, because the Pthread API cannot be changed at this point. 1297 [Michele Satriani <satriani@info.uniroma2.it>, Ralf S. Engelschall] 1298 1299 *) Document it more clearly that PTH_ATTR_DEFAULT is _not_ the values an 1300 pth_attr_init() creates. It means that priority, joinability and 1301 cancelstate are _inherited_. 1302 [Eric Newton <ecn@smart.net>] 1303 1304 Changes between 1.2b3 and 1.2b4 (17-Sep-1999 to 17-Sep-1999) 1305 1306 *) Fixed test_httpd.c: highest port is 65535 and not 65553 ;) 1307 [Alex Fiori <alex@linuxbr.com>] 1308 1309 *) Fix Makefile.in: $(S)shtool -> $(srcdir)shtool 1310 [Ben Harris <bjh21@cam.ac.uk>, Ralf S. Engelschall] 1311 1312 *) Make Rhapsody happy with pth_errno.c by statically initializing 1313 the contained variables. 1314 [Ben Harris <bjh21@cam.ac.uk>, Ralf S. Engelschall] 1315 1316 Changes between 1.2b2 and 1.2b3 (04-Sep-1999 to 17-Sep-1999) 1317 1318 *) Added first cut of support for building Pth outside it's source tree. 1319 [Ben Harris <bjh21@cam.ac.uk>, Ralf S. Engelschall] 1320 1321 *) Updated pth.pod for new socklen_t usage and updated NEWS file. 1322 [Ralf S. Engelschall] 1323 1324 *) Officially switched from ``GNU Library General License v2.0'' 1325 to successor license: ``GNU Lesser General License v2.1''. 1326 [Ralf S. Engelschall] 1327 1328 *) Enhanced ss_sp to ss_base mapping: There is now Autoconf 1329 support for the mapping decision. 1330 [Ralf S. Engelschall, Ben Harris <bjh21@cam.ac.uk>] 1331 1332 *) Add `PTHREAD' also to defines for namespace protection. 1333 [Hans v. Sommerfeld <snoopy@redbaron.bir.uunet.de>] 1334 1335 *) Made the temporary errno saving more elegant with a new 1336 `errno_shield { .... }' construct. 1337 [Ralf S. Engelschall] 1338 1339 *) Upgraded to GNU shtool 1.4.6 1340 [Ralf S. Engelschall] 1341 1342 Changes between 1.2b1 and 1.2b2 (02-Sep-1999 to 04-Sep-1999) 1343 1344 *) Ported Pth to another esoteric, anchient and brain-dead 1345 platform which needs jmp_buf fiddling: Interactive Unix (ISC) 4.0. 1346 [Ralf S. Engelschall, Brandon Reynolds <bmr@comtime.com>] 1347 1348 *) Make sys/resource.h an optional header. 1349 [Ralf S. Engelschall] 1350 1351 *) Added CPPFLAGS to Makefile.in and configure.in 1352 [Ralf S. Engelschall] 1353 1354 Changes between 1.1.4 and 1.2b1 (30-Aug-1999 to 02-Sep-1999) 1355 1356 *) Added TESTS document which shows success stories with 1357 Apache, MySQL, Perl, Python, OpenLDAP, pident, etc. 1358 [Ralf S. Engelschall] 1359 1360 *) Enhanced pth-config/pthread-config scripts: first they 1361 are now concatenating the output of the options into a single 1362 string and print this at the end once. This way one can use things 1363 like LIBS="`pthread-config --ldflags --libs`" without getting an 1364 intermediate newline which causes trouble in various packages. 1365 Second per default only pth-specific CFLAGS/LDFLAGS/LIBS are 1366 printed. If one wants also additional flags one has used while 1367 building Pth one now can add the --all option. This is to avoid 1368 conflicts between Pth flags and flags of the application. 1369 [Ralf S. Engelschall] 1370 1371 *) Added -w to CFLAGS for Solaris if $CC is not GCC to avoid the 1372 warnings about "end of loop not reached" because of our 1373 ``do { ...return;... } while(0)'' macros. 1374 [Ralf S. Engelschall] 1375 1376 *) Fixed two bugs in internal pth_pqueue_delete() and one in 1377 pth_pqueue_insert(): it accidently also adjusted the priority 1378 queue top element if one deleted the last element of the queue and it 1379 calculated the priority of the following element incorrectly. 1380 [Jens Andersen <Jens@trw.nl>, Ralf S. Engelschall] 1381 1382 *) Optimized the signal mask handling: The application is now required to 1383 use pth_sigmask(3) and no longer can use sigprocmask(2) directly 1384 (as it's already the case for Pthreads where POSIX states that the 1385 behaviour of sigprocmask(2) is not defined in a MT application). 1386 The side-effect of this consistencency restriction is that 1387 internally the machine context switching no longer has to remember 1388 the signal mask on _every_ context switch. It's now sufficient 1389 that pth_sigmask(3) sets the mask to allow the scheduler to 1390 calculate its own mask. The result is a faster and more clean 1391 thread dispatching. Additionally a soft and hard syscall mapping 1392 for sigprocmask(2) was added, of course. 1393 [Ralf S. Engelschall] 1394 1395 *) Added support for socklen_t to both avoid warnings under 1396 some platforms and to avoid problems on 64 bit machines. 1397 [Ralf S. Engelschall] 1398 1399 *) Added UnixWare7 support to config.guess 1400 [Ralf S. Engelschall] 1401 1402 *) Added config.param facility. 1403 [Ralf S. Engelschall] 1404 1405 *) Cleaned up bootstrap stuff from configure.in and moved it to aclocal.m4. 1406 [Ralf S. Engelschall] 1407 1408 *) Fixed autoconf's `--silent' flag: it wasn't passed to ltconfig.sh 1409 [Ralf S. Engelschall] 1410 1411 *) Rewritten the "make test" message and refreshed the PORTING file to 1412 start with a new format which now includes also the machine context and 1413 stack growth direction. 1414 [Ralf S. Engelschall] 1415 1416 *) Enhanced the interactive (not --enable-batch) mode: The Makefile now 1417 displays real hints what to do as the next step. All messages can 1418 be disabled via --enable-batch, of course. 1419 [Ralf S. Engelschall] 1420 1421 *) Fixed aclocal.m4: Tabs were lost by accident. 1422 [Ralf S. Engelschall] 1423 1424 *) Fixed a type warning in pth_debug.c: pid_t vs. int 1425 [Ralf S. Engelschall] 1426 1427 _ _ 1428 / | / | 1429 | | | | 1430 | |_| | 1431 __|_(_)_|_______________________________________________________________ 1432 1433 Changes between 1.1.5 and 1.1.6 (02-Sep-1999 to 28-Sep-1999) 1434 1435 *) Backport from Pth 1.2b6: 1436 Fixed the Autoconf AC_CHECK_MCSC check which tests whether 1437 SVR4/SUSv2 makecontext(2), swapcontext(2) and friends can be used for 1438 user-space context switching. It was broken because the uc_link and 1439 uc_stack structure attributes were not initialized correctly. 1440 [Ralf S. Engelschall, Ben Harris <bjh21@cam.ac.uk>] 1441 1442 *) Backport from Pth 1.2b5: 1443 Document it more clearly that PTH_ATTR_DEFAULT is _not_ the values an 1444 pth_attr_init() creates. It means that priority, joinability and 1445 cancelstate are _inherited_. 1446 [Eric Newton <ecn@smart.net>] 1447 1448 *) Backport from Pth 1.2b4: 1449 Fixed test_httpd.c: highest port is 65535 and not 65553 ;) 1450 [Alex Fiori <alex@linuxbr.com>] 1451 1452 *) Backport from Pth 1.2b4: 1453 Make Rhapsody happy with pth_errno.c by statically initializing 1454 the contained variables. 1455 [Ben Harris <bjh21@cam.ac.uk>, Ralf S. Engelschall] 1456 1457 *) Backport from Pth 1.2b3: 1458 Add `PTHREAD' also to defines for namespace protection. 1459 [Hans v. Sommerfeld <snoopy@redbaron.bir.uunet.de>] 1460 1461 *) Upgraded to GNU shtool 1.4.6 1462 [Ralf S. Engelschall] 1463 1464 Changes between 1.1.4 and 1.1.5 (30-Aug-1999 to 02-Sep-1999) 1465 1466 *) Backport from Pth 1.2b1: 1467 Enhanced pth-config/pthread-config scripts: first they 1468 are now concatenating the output of the options into a single 1469 string and print this at the end once. This way one can use things 1470 like LIBS="`pthread-config --ldflags --libs`" without getting an 1471 intermediate newline which causes trouble in various packages. 1472 Second per default only pth-specific CFLAGS/LDFLAGS/LIBS are 1473 printed. If one wants also additional flags one has used while 1474 building Pth one now can add the --all option. This is to avoid 1475 conflicts between Pth flags and flags of the application. 1476 [Ralf S. Engelschall] 1477 1478 *) Backport from Pth 1.2b1: 1479 Fixed two bugs in internal pth_pqueue_delete() and one in 1480 pth_pqueue_insert(): it accidently also adjusted the priority 1481 queue top element if one deleted the last element of the queue and it 1482 calculated the priority of the following element incorrectly. 1483 [Jens Andersen <Jens@trw.nl>, Ralf S. Engelschall] 1484 1485 *) Backport from Pth 1.2b1: 1486 Added -w to CFLAGS for Solaris if $CC is not GCC to avoid the 1487 warnings about "end of loop not reached" because of our 1488 ``do { ...return;... } while(0)'' macros. 1489 [Ralf S. Engelschall] 1490 1491 *) Backport from Pth 1.2b1: 1492 Fixed autoconf's `--silent' flag: it wasn't passed to ltconfig.sh 1493 [Ralf S. Engelschall] 1494 1495 *) Backport from Pth 1.2b1: 1496 Fixed aclocal.m4: Tabs were lost by accident. 1497 [Ralf S. Engelschall] 1498 1499 *) Backport from Pth 1.2b1: 1500 Fixed a type warning in pth_debug.c: pid_t vs. int 1501 [Ralf S. Engelschall] 1502 1503 Changes between 1.1.3 and 1.1.4 (27-Aug-1999 to 30-Aug-1999) 1504 1505 *) Changed internal handling of spawned threads: they are now really 1506 inserted to the top of the priority queue to make sure a thread is 1507 guarrantied to be dispatched next when one calls pth_yield(NULL) 1508 directly after a pth_spawn(). This is especially interesting for 1509 programming with the co-routine paradigm where it allows one to better 1510 control the startup of a co-routine. 1511 [Ralf S. Engelschall, Jens Andersen <Jens@trw.nl>] 1512 1513 *) Fixed pthread_cancel(): a switch statement was incorrect (three 1514 breaks were missing to stop falling through). 1515 [Jens Andersen <Jens@trw.nl>] 1516 1517 *) Change internal `_pthread' prefix to `__pthread'. 1518 [Ralf S. Engelschall] 1519 1520 *) Enhanced backward compatibility stuff for Pthread draft 4 (DCE Threads) 1521 in pthread.h.in: When _POSIX_BACKCOMPAT is defined before the pthread.h 1522 header is included one now gets a lot more backward compatibility 1523 mappings. 1524 [Ralf S. Engelschall] 1525 1526 *) Optimize internal processing by inlining various small functions from 1527 pth_ring.c, pth_pqueue.c and pth_sched.c which are called a lot. 1528 [Ralf S. Engelschall] 1529 1530 *) Optimized readline() in test_common.c 1531 [Ralf S. Engelschall] 1532 1533 *) Added specific support for Linux/glibc/mc68000 to pth_mctx.c 1534 [Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de>] 1535 1536 *) Updated INSTALL document for --enable-optimize. 1537 [Ralf S. Engelschall] 1538 1539 Changes between 1.1.2 and 1.1.3 (23-Aug-1999 to 27-Aug-1999) 1540 1541 *) Enhanced test program of AC_CHECK_STACKGROWTH in aclocal.m4 to 1542 make sure the test variables are not optimized away by the 1543 compiler and this way lead to incorrect check results. 1544 [Martin Kraemer <martin.kraemer@mch.sni.de>, Ralf S. Engelschall] 1545 1546 *) Fixed default stack size: was 32*16384 (=512KB) instead 1547 of the intended 32*1024 (=32KB). 1548 [Ralf S. Engelschall] 1549 1550 *) Added --enable-optimize flag to configure with selected 1551 standard optimization flags of GCC. 1552 [Ralf S. Engelschall] 1553 1554 *) Added SUPPORT file to source tree. 1555 [Ralf S. Engelschall] 1556 1557 *) Added test_philo, Dijkstra's Five Dining Philosophers ;) 1558 [Ralf S. Engelschall] 1559 1560 *) Add "auto" qualifier to PTH_STACKGROWTH test program 1561 to make sure the variables are placed into the stack. 1562 [Ralf S. Engelschall] 1563 1564 *) Use predetermined $PLATFORM of configure also in Makefile 1565 [Ralf S. Engelschall] 1566 1567 Changes between 1.1.1 and 1.1.2 (21-Aug-1999 to 23-Aug-1999) 1568 1569 *) Fixed Makefile.in: pth_acdef.h and pth_acmac.h were not removed on 1570 "distclean" and this way they were accidently distributed. 1571 [Ralf S. Engelschall] 1572 1573 *) Changed return type of pth_yield() from `void' to `int' to 1574 be able to return an error FALSE/EINVAL in case the `tid' 1575 argument specified an invalid or still not ready thread. 1576 [Kurt D. Zeilenga <Kurt@OpenLDAP.Org>, Ralf S. Engelschall] 1577 1578 *) Fixed description of pth_yield() in pth.pod. 1579 [Kurt D. Zeilenga <Kurt@OpenLDAP.Org>, Ralf S. Engelschall] 1580 1581 Changes between 1.1.0 and 1.1.1 (19-Aug-1999 to 21-Aug-1999) 1582 1583 *) Changed pthread_yield_np() from `void' return type to `int' to allow the 1584 `#define sched_yield pthread_yield_np' work as expected, because 1585 sched_yield has `int' return type per SUSv2. 1586 [Kurt D. Zeilenga <Kurt@OpenLDAP.Org>, Ralf S. Engelschall] 1587 1588 *) Fixed problems related to pthread_exit() and pth_exit(): The 1589 PTH_EVENT_FUNC internally was used incorrectly by pth_exit() and the 1590 implicit initialization was forgotten in pthread_exit(). 1591 [Kurt D. Zeilenga <Kurt@OpenLDAP.Org>, Ralf S. Engelschall] 1592 1593 *) Added consistency check for `timeout' attribute of pth_poll 1594 and various other EINVAL related checks to pth_event.c. 1595 [Ralf S. Engelschall] 1596 1597 *) Added consistency check for `abstime' attribute of 1598 pthread_cond_timedwait(). 1599 [Ralf S. Engelschall] 1600 1601 Changes between 1.1b7 and 1.1.0 (18-Aug-1999 to 19-Aug-1999) 1602 1603 *) Disable vendor typedefs in pthread.h.in because 1604 it caused problems under Solaris. 1605 [Ralf S. Engelschall] 1606 1607 *) Cleaned up the sources a little bit more. 1608 [Ralf S. Engelschall] 1609 1610 *) Updated rse-pmt.ps to v0.9.15 1611 [Ralf S. Engelschall] 1612 1613 Changes between 1.1b6 and 1.1b7 (18-Aug-1999 to 18-Aug-1999) 1614 1615 *) Added test for nested thread operation to test_std.c 1616 [Ralf S. Engelschall] 1617 1618 *) Updated rse-pmt.ps to talk about the sigsetjmp(3) problems. 1619 [Ralf S. Engelschall] 1620 1621 *) Enhanced the heart of Pth: pth_mctx_set(). 1622 Instead of the real dispatching functions a plain setjmp(3)/longjmp(3) 1623 pair is used for the trampoline trick in order to avoid problems with 1624 sigjmp_buf-attached signal stacks on platforms where sigsetjmp(3) does 1625 more than it is usuallly expected. This especially fixes `thread spawns 1626 thread' problems under HPUX. 1627 [Ralf S. Engelschall, Aaron Metzger <ametzger@varcom.com>] 1628 1629 Changes between 1.1b5 and 1.1b6 (17-Aug-1999 to 18-Aug-1999) 1630 1631 *) Fixed return value of pth_write/pth_read. 1632 [Eric Newton <ecn@smart.net>, Ralf S. Engelschall] 1633 1634 *) Fixed example in manual page (pth.pod): pth_load() 1635 is now pth_ctrl(PTH_CTRL_GETAVLOAD, ...) 1636 [Eric Newton <ecn@smart.net>] 1637 1638 *) Fixed warning in pth_high.c related to implicit casting. 1639 [Ralf S. Engelschall] 1640 1641 *) Added BS2000 support to config.guess/config.sub. 1642 [Martin Kraemer] 1643 1644 *) Fixed a sigaltstack() call in pth_mctx.c: the return code 1645 was checked incorrectly. 1646 [Ralf S. Engelschall] 1647 1648 *) Updated rse-pmt.ps 1649 [Ralf S. Engelschall, Eric Newton <ecn@smart.net>] 1650 1651 *) Fixed a nasty bug in the thread stack allocation: A stack was also 1652 allocated for the main thread, but not used. The problem was that an 1653 allocated stack has a guardian and this way was checked each time and 1654 could lead to a bogus STACK OVERFLOW for the "main" thread. 1655 [Ralf S. Engelschall, Martin Kraemer] 1656 1657 Changes between 1.1b4 and 1.1b5 (13-Aug-1999 to 17-Aug-1999) 1658 1659 *) Added draft of forthcoming paper ``Portable Multithreading - The Signal 1660 Stack Trick Of User-Space Thread Creation'' to source tree under 1661 rse-pmt.ps. Hackers are encouraged to read this if they want to 1662 understand Pth's internals. 1663 [Ralf S. Engelschall] 1664 1665 *) Source cleanups: added `extern' qualifier to function prototypes in 1666 pth.h.in and pthread.h.in; make compilation silent with both gcc 2.95.1 C 1667 and C++ frontends by fixing implicit type conversion situations, etc. 1668 [Ralf S. Engelschall] 1669 1670 *) Return EBUSY instead of EAGAIN for pth_mutex_acquire() when the "try" 1671 argument is TRUE. This fixes especially the POSIX semantics of 1672 pthread_mutex_trylock(). 1673 [Ralf S. Engelschall] 1674 1675 *) Added pth_compat.c with strerror(3) replacement for SunOS. 1676 [Ralf S. Engelschall] 1677 1678 *) Fixed pthread_{mutex,rwlock,cond}_destroy() functions. 1679 [Ralf S. Engelschall] 1680 1681 *) Added support for `configure <platform-id>'. 1682 [Ralf S. Engelschall, Martin Kraemer <Martin.Kraemer@mch.sni.de>] 1683 1684 Changes between 1.1b3 and 1.1b4 (11-Aug-1999 to 13-Aug-1999) 1685 1686 *) Fixed blocking semantics of pth_writev(). 1687 [Ralf S. Engelschall] 1688 1689 *) Fixed a very nasty bug in pth_select(): The write fd_set was passed 1690 twice to the scheduler (once as the write fd_set and once as the 1691 execptional fd_set). This caused problems, because the event loop this 1692 way deleted bits in the write fd_set by accident and the return semantic 1693 was broken. 1694 [Ralf S. Engelschall] 1695 1696 *) Added fallbacks for UIO_MAXIOV to pth.h and pthread.h 1697 [Ralf S. Engelschall] 1698 1699 *) Remove locking check in pth_mutex_init() because this would only work 1700 with static vars where ANSI C guarranties an initialization with 0 1701 bytes. 1702 [Martin Kraemer <Martin.Kraemer@mch.sni.de>] 1703 1704 *) Fixed pth_write() semantics. 1705 [Ralf S. Engelschall] 1706 1707 Changes between 1.1b2 and 1.1b3 (10-Aug-1999 to 11-Aug-1999) 1708 1709 *) Overhauled pthread.h to make it better compile-able also under 1710 platforms where a vendor Pthread library exists. 1711 [Ralf S. Engelschall] 1712 1713 *) Reordered ingredients of configure.in. 1714 [Ralf S. Engelschall] 1715 1716 *) Fixed aclocal.m4: -g was incorrectly stripped. 1717 [Ralf S. Engelschall] 1718 1719 *) Enhance pth_write(): In non-blocking (default) mode it now mimics the 1720 behaviour of write(2) more correctly by iterating until all data is 1721 written or an error occurs. 1722 [Ralf S. Engelschall] 1723 1724 Changes between 1.1b1 and 1.1b2 (07-Aug-1999 to 10-Aug-1999) 1725 1726 *) Fixed ring walking inside both public pth_msgport_find() function and 1727 the internal pth_mutex_releaseall() function. 1728 [Laurent Vaucher <laurent.vaucher@ficsgrp.com>] 1729 1730 Changes between 1.0.4 and 1.1b1 (03-Aug-1999 to 07-Aug-1999) 1731 1732 *) Fixed test_select.c: a char has to be used for read(2) and not an int. 1733 [Ralf S. Engelschall] 1734 1735 *) Fixed AC_CHECK_NSIG test and this way PTH_NSIG define. 1736 [Ralf S. Engelschall] 1737 1738 *) Overhauled pth_mctx.c's internals according to latest algorithm of my 1739 paper ``Portable Multithreading - The Signal Stack Trick For User-Space 1740 Thread Creation''. Especially: sigstack had not restored stack 1741 correctly, the signal mask was not inherited correctly; Linux 1742 signal mask handling was incorrect, etc. 1743 [Ralf S. Engelschall] 1744 1745 *) Adjusted variables in pth_mctx.c to use `volatile' qualifier. 1746 [Ralf S. Engelschall] 1747 1748 *) Simplified Makefile.in a little bit by removing $(OBJS) 1749 [Ralf S. Engelschall] 1750 1751 *) Replaced the run-time stack growth decision for the guardian in 1752 pth_tcb.c with a compile-time decision. 1753 [Ralf S. Engelschall] 1754 1755 *) Completly rewritten the configure.in part which deals 1756 with the machine context (mctx) implementation: First SVR4/SUSv2 1757 makecontext(2) and friends are generally preferred. Second, the user 1758 now can override the decisions via --with-mctx-{mth,dsp,stk}. Third, the 1759 pth_mctx.c source was enhanced by using skaddr_xxx() and sksize_xxx() 1760 macros which know through Autoconf checks how a stack has to be setup 1761 correctly for makecontext(2), sigaltstack(2) and sigstack(2). 1762 [Ralf S. Engelschall] 1763 1764 *) Add support to pth_mctx.c for SVR4/SUSv2 makecontext(2)/swapcontext(2) 1765 and friends. This way Pth now is best prepared to cover forthcoming Unix 1766 flavors, because these are didicated and standadized functions for 1767 user-space context switching. 1768 [Ralf S. Engelschall] 1769 1770 *) Completely overhauled aclocal.m4 1771 [Ralf S. Engelschall] 1772 1773 *) Use GNU config.guess/config.sub instead of GNU shtool guessos 1774 for wider support inside GNU libtool. 1775 [Ralf S. Engelschall] 1776 1777 *) Replaced switch() over long variables (which aren't covered by 1778 traditional C) with an if-else construct in pth_event.c to be more 1779 portable. 1780 [Ralf S. Engelschall] 1781 1782 *) Fixed timeout handling in pth_select(). 1783 [Ralf S. Engelschall] 1784 1785 *) Don't free(2) application-supplied stacks on cleanups. 1786 [Ralf S. Engelschall] 1787 1788 *) Don't allow an application to change the stack size or address on an 1789 pth_attr_t object when its attached to a thread (see pth_attr_of). 1790 [Ralf S. Engelschall] 1791 1792 *) Added pth_ext.c for extensional functionality. As a first 1793 cut Sfio support is provided by an additional function pth_sfiodisc. 1794 This functions is always available, but only reasonably useable when Pth 1795 was built with Sfio support (--with-sfio option) and PTH_EXT_SFIO is 1796 then defined by pth.h. It is useful for applications which want to use 1797 the comprehensive Sfio I/O library with the Pth threading library. Then 1798 this function can be used to get an Sfio discipline structure (Sfdisc_t) 1799 which can be pushed onto Sfio streams (Sfio_t) in order to let this 1800 stream use pth_read(3)/pth_write(2) instead of read(2)/write(2). The 1801 benefit is that this way I/O on the Sfio stream does only block the 1802 current thread instead of the whole process. The application has to 1803 free(3) the Sfdisc_t structure when it is no longer needed. 1804 [Ralf S. Engelschall] 1805 1806 *) Added `barrier' synchronization objects. These provide a way to let a 1807 group of threads wait at a barrier until the last reached the barrier. 1808 It's implemented on top of mutex and condition variable. 1809 [Ralf S. Engelschall] 1810 1811 *) Replaced a bogus stdio fgetc() in test_select with pth_read(). 1812 [Ralf S. Engelschall] 1813 1814 *) Fixed internal pth_debug(3): it now preserved errno to make sure there 1815 is no run-time difference in semantics just because of debug messages. 1816 [Ralf S. Engelschall] 1817 1818 *) Overhauled the filedescriptor handling: 1819 1. There is no longer a requirement to manually switch a filedescriptor 1820 into non-blocking mode in order to use it. This is automatically done 1821 temporarily inside Pth now. Instead when you now switch a filedescriptor 1822 explicitly into non-blocking mode, pth_read(3) or pth_write(3) will 1823 never block the current thread as it is the expected behaviour for 1824 non-blocking I/O. 1825 2. pth_nonblocking(3) was replaced by a more convinient pth_fdmode(3) 1826 function which can perform both get and set operations at once. 1827 [Ralf S. Engelschall] 1828 1829 _ ___ 1830 / | / _ \ 1831 | || | | | 1832 | || |_| | 1833 __|_(_)___/_____________________________________________________________ 1834 1835 Changes between 1.0.4 and 1.0.5 (03-Aug-1999 to 10-Aug-1999) 1836 1837 *) Backport from Pth 1.1b2: 1838 Fixed ring walking inside both public pth_msgport_find() function 1839 and the internal pth_mutex_releaseall() function. 1840 [Laurent Vaucher <laurent.vaucher@ficsgrp.com>] 1841 1842 *) Backport from Pth 1.1b1: 1843 In pth_mctx.c the signal stack was not restored correctly. 1844 [Ralf S. Engelschall] 1845 1846 *) Backport from Pth 1.1b1: 1847 Fixed test_select.c: a char has to be used for read(2) and not an int. 1848 And replaced a bogus stdio fgetc() in test_select with pth_read(). 1849 [Ralf S. Engelschall] 1850 1851 *) Backport from Pth 1.1b1: 1852 Fixed AC_CHECK_NSIG test and this way PTH_NSIG define. 1853 [Ralf S. Engelschall] 1854 1855 *) Backport from Pth 1.1b1: 1856 Fixed timeout handling in pth_select(). 1857 [Ralf S. Engelschall] 1858 1859 Changes between 1.0.3 and 1.0.4 (30-Jul-1999 to 03-Aug-1999) 1860 1861 *) Fixed two read/write calls: they didn't use the pth_sc wrapper. 1862 [Ralf S. Engelschall] 1863 1864 *) Make pth_{read,write}() functions more POSIX compliant by returning 0 1865 when the nbytes argument is given as 0. And make pth_{readv,writev}() 1866 functions more POSIX compliant by returning -1/EINVAL when the iovcnt 1867 argument is less or equal to 0. 1868 [Ralf S. Engelschall] 1869 1870 *) Added missing readv/writev wrappers to pthread.c 1871 [Ralf S. Engelschall] 1872 1873 *) Typo fixes in pth.pod 1874 [Eric Newton <ecn@smart.net>] 1875 1876 *) Fixed special `--disable-static --enable-shared' situation. 1877 [Felix von Leitner <leitner@fefe.de>, Ralf S. Engelschall] 1878 1879 *) Fixed `debug-xx' targets. 1880 [Ralf S. Engelschall] 1881 1882 Changes between 1.0.2 and 1.0.3 (28-Jul-1999 to 30-Jul-1999) 1883 1884 *) Fixed inconsistent and wrong API value: PTH_ATTR_NULL existed and was 1885 documented as PTH_ATTR_NONE. But actually the intended and intuitive 1886 value was PTH_ATTR_DEFAULT. !BE CAREFUL: This is an API change and 1887 requires adjustments in Pth applications! 1888 [Ralf S. Engelschall, Eric Newton <ecn@smart.net>] 1889 1890 *) Make sure pthread.h.in doesn't redefine the poll(2) environment 1891 under built-time because it's already defined by the included pth.h. 1892 [Kriton Kyrimis <kyrimis@cti.gr>] 1893 1894 *) Add readv/writev environment fallback definitions to pthread.h.in. 1895 [Ralf S. Engelschall] 1896 1897 *) Support for AmigaOS in pthreads.c: timespec attributes have (correct) 1898 ts_ prefix under AmigaOS and not the (bogus) POSIX tv_ prefix 1899 [Kriton Kyrimis <kyrimis@cti.gr>] 1900 1901 *) Add `#include <time.h>' for struct timespec to pthread.h.in 1902 and removed timespec references in pth.h.in. 1903 [Ralf S. Engelschall] 1904 1905 *) Fixed documentation for pth_spawn() and pth_wait(). 1906 [Ralf S. Engelschall, Eric Newton <ecn@smart.net>] 1907 1908 Changes between 1.0.1 and 1.0.2 (22-Jul-1999 to 28-Jul-1999) 1909 1910 *) Upgraded to GNU shtool 1.4.5. 1911 [Ralf S. Engelschall] 1912 1913 *) Added `uninstall' target to Makefile 1914 [Ralf S. Engelschall] 1915 1916 *) Cleanup package to conform to the GNU standards: added AUTHORS document; 1917 renamed CHANGES to ChangeLog and added NEWS document; renamed LICENSE to 1918 COPYING; renamed CREDITS to THANKS; added hint to bug-pth@gnu.org to 1919 pth.pod manual. 1920 [Ralf S. Engelschall] 1921 1922 *) Fixed HAVE_SIGSTACK alternative in pth_mctx.c 1923 [Jim Jagielski <jim@jaguNET.com>] 1924 1925 *) Removed internal "was_blocking" attribute in event structure 1926 because it was never used. 1927 [Ralf S. Engelschall] 1928 1929 *) Fixed documentation of pth_xxx_init() synchronization functions. 1930 [Ralf S. Engelschall] 1931 1932 Changes between 1.0.0 and 1.0.1 (16-Jul-1999 to 22-Jul-1999) 1933 1934 *) Added missing documentation for pth_timeout(). 1935 [Ralf S. Engelschall] 1936 1937 *) Moved pthread_p{read,write}() to pth_high.c as pth_p{read,write}() 1938 and added syscall wrapper support for it. 1939 [Ralf S. Engelschall] 1940 1941 *) Added support for readv(2) and writev(2): There are now 1942 four new API functions pth_readv, pth_readv_ev, pth_writev and 1943 pth_writev_ev. Additionally on platforms where no native 1944 readv(2)/writev(2) exists, the struct iovec is faked and the internal 1945 implementation is based on read(2)/write(2). This way the functionality 1946 is available everywhere. Finally, the syscall support was extended to 1947 cover readv and writev now, too. 1948 [Ralf S. Engelschall] 1949 1950 *) Added support for FNDELAY to pth_nonblocking. 1951 [Ralf S. Engelschall] 1952 1953 *) Cleaned up pthread.h and pth.h and added extra forward definitions for 1954 struct timeval/timespec to avoid problems on some platforms (like SCO). 1955 [Ralf S. Engelschall] 1956 1957 *) Added "make check" as an alias for "make test" 1958 [Ralf S. Engelschall] 1959 1960 *) Upgraded to GNU shtool 1.4.4 and use new `shtool tarball' 1961 [Ralf S. Engelschall] 1962 1963 Changes between 1.0b8 and 1.0.0 (16-Jul-1999 to 16-Jul-1999) 1964 1965 *) Fixed scheduler reinitialization. 1966 [Ralf S. Engelschall] 1967 1968 *) Upgraded to GNU shtool 1.4.4-dev. 1969 [Ralf S. Engelschall] 1970 1971 *) Cleaned up syscall stuff: usleep() is not longer mapped because it's too 1972 unstandardized, sigwait() is again mapped because it is standardized and 1973 those platforms which fail are broken. 1974 [Ralf S. Engelschall] 1975 1976 *) Fixed pthread-config.in: -lpth => -lpthread 1977 [Ralf S. Engelschall] 1978 1979 *) Downgraded required Autoconf version to 2.12 1980 [Ralf S. Engelschall] 1981 1982 *) Moved pth_readline[_ev]() from the Pth API into test_common.c because 1983 this function is just a half-way solution (pth_read doesn't use the same 1984 buffer) and when one needs buffered I/O it's better to use a _real_ I/O 1985 library like Sfio, etc. 1986 [Ralf S. Engelschall] 1987 1988 *) Cleanup to Makefile.in 1989 [Ralf S. Engelschall] 1990 1991 Changes between 1.0b7 and 1.0b8 (14-Jul-1999 to 16-Jul-1999) 1992 1993 *) Fixed result handling of stack growth detection. 1994 [Ralf S. Engelschall, Frank Carpenter <carpen@nortelnetworks.com>] 1995 1996 *) Added explicit libtool --mode flags in Makefile.in 1997 to avoid compiler guessing problems on esoteric platforms. 1998 [Ralf S. Engelschall] 1999 2000 *) Fixed broken condition variable handling: the scheduler 2001 incorrectly checked the condition variable flags. 2002 [Ralf S. Engelschall, Andrew Hunter <esvce@dcs.warwick.ac.uk>] 2003 2004 *) Allow main thread to be joinable to fulfill POSIX. 2005 [Ralf S. Engelschall] 2006 2007 *) Fixed a nasty bug in the scheduler: the write and exceptional 2008 filedescriptor sets were not passed to the select(): ARGL! 2009 [Ralf S. Engelschall] 2010 2011 *) Added implicit initialization to pth_syscall.c stuff 2012 and pthread.c stuff. 2013 [Ralf S. Engelschall] 2014 2015 *) Fixed again static initializations via PTHREAD_XXX_INITIALIZER 2016 [Ralf S. Engelschall] 2017 2018 *) Fixed again PTHREAD_ONCE_INIT 2019 [Ralf S. Engelschall] 2020 2021 *) Added PTHREAD_CANCELED to pthread.h. 2022 [Ralf S. Engelschall] 2023 2024 *) Fixed POSIX pthread_testcancel(): it is defined to have 2025 void return type and not int. 2026 [Ralf S. Engelschall] 2027 2028 Changes between 1.0b6 and 1.0b7 (14-Jul-1999 to 14-Jul-1999) 2029 2030 *) Replaced FALSE value for PTHREAD_ONCE_INIT in pthread.h with 0 to 2031 be not dependent on such defines. 2032 [Ralf S. Engelschall, Rick Brownrigg] 2033 2034 *) Disabled syscall soft mapping for usleep because it causes prototype 2035 conflicts with unistd.h on some platforms due to the fact that usleep(3) 2036 is bad standardized. 2037 [Ralf S. Engelschall, Rick Brownrigg] 2038 2039 *) Added pthread_cancel() to POSIX emulation. 2040 [Ralf S. Engelschall, Rick Brownrigg] 2041 2042 *) Fixed poll(2)/poll.h detection in Autoconf. 2043 [Ralf S. Engelschall, Igor A. Minyukoff <iam@inser.loniis.spb.su>] 2044 2045 Changes between 1.0b5 and 1.0b6 (11-Jul-1999 to 14-Jul-1999) 2046 2047 *) Fixed pth_attr_ctrl(): it failed with EACCES because 2048 of incorrect comparisons 2049 [Igor A. Minyukoff <iam@inser.loniis.spb.su>] 2050 2051 *) Replaced PTHREAD_{MUTEX,COND,RWLOCK}_INITIALIZER with an alternative 2052 implementation to allow the assignment to `static' variables, too. 2053 [Ralf S. Engelschall, Rick Brownrigg <brownrig@erg.sri.com>] 2054 2055 Changes between 1.0b4 and 1.0b5 (08-Jul-1999 to 11-Jul-1999) 2056 2057 *) Fixed pth_waitpid() semantics. 2058 [Ralf S. Engelschall] 2059 2060 *) Added pth_poll() and pth_poll_ev() with the following trick: it is always 2061 present (independent whether the platform has poll(2) or not), because it 2062 is (AND HAS TO BE) internally based on pth_select(). The poll function 2063 wrapping support was added, too. 2064 [Ralf S. Engelschall] 2065 2066 *) Moved pth_init() to the top of all test applications. 2067 [Ralf S. Engelschall] 2068 2069 *) Added direct system call mapping support: --enable-syscall-soft 2070 enables #define's in pth.h and pthread.h which do a soft-mapping of e.g. 2071 read to pth_read. This is _always_ possible. --enable-syscall-hard 2072 enables the exportation of syscall wrappers (e.g. read) by the Pth 2073 library and the calling of the real system calls via syscall(2), hence 2074 this variant is only available when the platform supports syscall(2) 2075 [e.g. yes: *BSD, Linux, Solaris, HP/UX, IRIX, UnixWare; no: AIX, SCO5] 2076 2077 For the soft variant the whole application sources have to include 2078 pth[read].h and existing libraries (like stdio!) can still block the 2079 whole process, while for the hard variant the application sources do not 2080 all have to include pth[read].h an existing libraries (including stdio!) 2081 magically use Pth's system call wrappers. 2082 [Ralf S. Engelschall] 2083 2084 *) Speeded up `configure --help' by not creating the header 2085 [Ralf S. Engelschall] 2086 2087 *) Added pth_select_ev() and pth_select() based on the new PTH_EVENT_SELECT 2088 and the old PTH_EVENT_TIME events which emulate 4.2BSD's select(2), but 2089 suspend only the current thread. Additionally added a select() wrapper to 2090 the POSIX wrapper API. 2091 [Ralf S. Engelschall] 2092 2093 *) Added PTH_EVENT_SELECT which can be used to suspend the current thread 2094 until an event occured in one of three fd _sets_ similar to select(2) but 2095 without the timeout facility. 2096 [Ralf S. Engelschall] 2097 2098 *) Upgraded to GNU shtool 1.4.3. This especially fixes 2099 the shared library generation under GNU/Linux now. 2100 [Ralf S. Engelschall] 2101 2102 *) Added pth_abort() and a corresponding pthread_abort() 2103 for cruel ways to cancel a thread. 2104 [Ralf S. Engelschall] 2105 2106 *) Fixed POSIX pread()/pwrite(): Their mutex variables have 2107 to be static variables and not local variables. 2108 [Ralf S. Engelschall] 2109 2110 *) Added #define for POSIX sched_yield() to pthread.h.in 2111 [Ralf S. Engelschall] 2112 2113 Changes between 1.0b3 and 1.0b4 (07-Jul-1999 to 08-Jul-1999) 2114 2115 *) Added POSIX pread() and pwrite() [parallel I/O] emulation 2116 functions to pthread.{ch]. 2117 [Ralf S. Engelschall] 2118 2119 *) Removed double-definition of the fallback types in pthread.h.in. 2120 [Ralf S. Engelschall] 2121 2122 *) Added pthread_atfork() to pthread.c 2123 [Ralf S. Engelschall] 2124 2125 *) Added pth_atfork_{push,pop}() functions and moved them together with 2126 pth_fork() to a new pth_fork.c source files. Updated also the 2127 documentation to describe the new at-fork handlers. 2128 [Ralf S. Engelschall] 2129 2130 *) Write still missing documentation for pth_cleanup_{push,pop}() 2131 [Ralf S. Engelschall] 2132 2133 *) Fixed again pth_event_concat(): The last attempt was 2134 to inefficient and still had a bug. 2135 [Igor A. Minyukoff <iam@inser.loniis.spb.su>, Ralf S. Engelschall] 2136 2137 *) Cleaned up all name references: The official long name is `GNU Portable 2138 Threads', the official short name is `GNU Pth' and the common prefix is 2139 `pth_' and `PTH_'. 2140 [Ralf S. Engelschall] 2141 2142 Changes between 1.0b2 and 1.0b3 (04-Jul-1999 to 07-Jul-1999) 2143 2144 *) Remove a trailing comma inside an enum in pthread.h.in 2145 [Martin Kraemer <martin.kraemer@mch.sni.de>] 2146 2147 *) Added two new API event-related functions which can be used to extract 2148 the contents of existing events: pth_event_typeof() and 2149 pth_event_extract(). 2150 [Ralf S. Engelschall] 2151 2152 *) Fixed pth_event_concat(): It was broken because it 2153 handled real/non-single-event event rings not correctly. 2154 [Igor A. Minyukoff <iam@inser.loniis.spb.su>, Ralf S. Engelschall] 2155 2156 *) Fixed pth_event_walk(): It was broken for PTH_WALK_NEXT 2157 [Igor A. Minyukoff <iam@inser.loniis.spb.su>, Ralf S. Engelschall] 2158 2159 *) Fixed memory leak in pth_join() 2160 [Igor A. Minyukoff <iam@inser.loniis.spb.su>] 2161 2162 *) Fixed manual page pthread-config.pod 2163 [Ralf S. Engelschall] 2164 2165 *) Upgraded to GNU shtool 1.4.1 and GNU libtool 1.3.3 2166 [Ralf S. Engelschall] 2167 2168 *) Fixed test_pthread.c: sleep(3) requires unistd.h 2169 [Ralf S. Engelschall, Martin Kraemer <martin.kraemer@mch.sni.de>] 2170 2171 *) Cleaned up --enable-batch/--enable-pthread 2172 [Ralf S. Engelschall] 2173 2174 Changes between 1.0b1 and 1.0b2 (28-Jun-1999 to 04-Jul-1999) 2175 2176 *) Upgraded to GNU shtool 1.4.0 2177 [Ralf S. Engelschall] 2178 2179 *) Changed return value type of pth_version() from "int" to "long" 2180 to avoid problems with too large numbers. 2181 [Ralf S. Engelschall] 2182 2183 *) Simplified internal representation of pth_once_t 2184 [Ralf S. Engelschall] 2185 2186 *) !!ATTENTION!! Renamed _anything_ from the old 2187 coding-name nps/NPS to the new official name pth/PTH. 2188 [Ralf S. Engelschall] 2189 2190 *) Added the new POSIX.1c pthread emulation library 2191 (pthread* files). It has to be enabled explicitly 2192 via --enable-pthread because it's disabled per default) 2193 [Ralf S. Engelschall] 2194 2195 *) Enhanced pthread.pod manual page. 2196 [Ralf S. Engelschall] 2197 2198 Changes between 0.9.21 and 1.0b1 (25-Jun-1999 to 28-Jun-1999) 2199 2200 *) Added internal pth_util_cpystrn() to pth_util.c 2201 [Ralf S. Engelschall] 2202 2203 *) removed pth_attr(), pth_priority(), pth_detach() 2204 [Ralf S. Engelschall] 2205 2206 *) added new pth_attr_*() functions for manipulating pth_attr_t objects; 2207 this is now more flexible because those objects now can be also bound to 2208 threads when retrieved via pth_attr_of(). THIS IS A HEAVY BUT IMPORTANT 2209 API CHANGE! READ THE DOCS AND THE TEST PROGRAMS FOR DETAILS. SORRY, BUT 2210 IS HAS TO BE DONE BEFORE WE ENTER THE STABLE 1.0 VERSIONS. 2211 [Ralf S. Engelschall] 2212 2213 *) Added --enable-profile and --enable-batch to Autoconf 2214 [Ralf S. Engelschall] 2215 2216 *) Updated pth.pod to reflect latest changes. 2217 [Ralf S. Engelschall] 2218 2219 *) Renamed pth_state_* to upper case names. 2220 [Ralf S. Engelschall] 2221 2222 *) Moved pth_sigmask() to pth_high.c 2223 [Ralf S. Engelschall] 2224 2225 *) Renamed pth_sigraise() to pth_raise() and added support for 2226 per-thread signal delivery via pth_raise(). 2227 [Ralf S. Engelschall] 2228 2229 *) Renamed pth.c to pth_lib.c 2230 [Ralf S. Engelschall] 2231 2232 *) Upgraded to GNU shtool 1.3.1 2233 [Ralf S. Engelschall] 2234 2235 *) Added pth_version() function 2236 [Ralf S. Engelschall] 2237 2238 *) Added a real test Makefile target via new test_std.c 2239 [Ralf S. Engelschall] 2240 2241 *) Added more references to pth.pod 2242 [Ralf S. Engelschall] 2243 2244 ___ ___ 2245 / _ \ / _ \ 2246 | | | | (_) | 2247 | |_| |\__, | 2248 ___\___(_) /_/__________________________________________________________ 2249 2250 Changes between 0.9.20 and 0.9.21 (24-Jun-1999 to 25-Jun-1999) 2251 2252 *) Upgraded to final shtool 1.3.0 release version 2253 [Ralf S. Engelschall] 2254 2255 *) Removed all variables names from prototypes to avoid conflicts 2256 [Ralf S. Engelschall] 2257 2258 *) Removed unnecessary casts for malloc() calls. 2259 [Ralf S. Engelschall] 2260 2261 *) Added pth_sigraise() function for later implementing pthread_kill() and 2262 currently at least for testing whether a thread still exists in the 2263 system (by sending it a signal 0). 2264 [Ralf S. Engelschall] 2265 2266 *) Renamed remaining XXX_INITIALIZER to XXX_INIT to be consistent with 2267 other init values. 2268 [Ralf S. Engelschall] 2269 2270 *) Prefixed all pth_attr_t attributes with "at_" 2271 [Ralf S. Engelschall] 2272 2273 *) Removed pth_equal(): we're not such crazy than POSIX... 2274 [Ralf S. Engelschall] 2275 2276 Changes between 0.9.19 and 0.9.20 (21-Jun-1999 to 24-Jun-1999) 2277 2278 *) Upgraded to latest shtool 1.3.0-dev 2279 [Ralf S. Engelschall] 2280 2281 *) Changed pth_yield(void) to pth_yield(pth_t) to allow the specification of 2282 a thread which should be favored. This allows the usage of the old 2283 concept of co-routines where a thread/routine switches to a particular 2284 target thread. 2285 [Ralf S. Engelschall] 2286 2287 *) Added hint about async-safety to pth.pod 2288 [Ralf S. Engelschall] 2289 2290 *) Added POSIX-style consistency wrapper pth_sigmask() for sigprocmask(). 2291 [Ralf S. Engelschall] 2292 2293 *) Added try argument to pth_mutex_acquire() to allow us later to 2294 emulate POSIX pthread_mutex_trylock() 2295 [Ralf S. Engelschall] 2296 2297 *) Moved errno stuff to a new dedicated pth_errno.c source file 2298 [Ralf S. Engelschall] 2299 2300 *) Changed function signatures to support return codes with errno 2301 [Ralf S. Engelschall] 2302 2303 *) pth_exit(val) in the main() thread now really just terminated the thread 2304 and not immediately the process, i.e. the thread goes sleeping until all 2305 other threads are gone and then does an exit(val). 2306 [Ralf S. Engelschall] 2307 2308 Changes between 0.9.18 and 0.9.19 (20-Jun-1999 to 21-Jun-1999) 2309 2310 *) Added a POSIX style pth_detach() 2311 [Ralf S. Engelschall] 2312 2313 *) Added pth_sync.c with POSIX style mutual exclusion locks (mutex), 2314 read-write locks (rwlock) and condition variable (cond) support 2315 [Ralf S. Engelschall] 2316 2317 *) Added a trivial mutex demo to test_misc.c 2318 [Ralf S. Engelschall] 2319 2320 Changes between 0.9.17 and 0.9.18 (18-Jun-1999 to 20-Jun-1999) 2321 2322 *) Greatly extended the manual page pth.pod 2323 [Ralf S. Engelschall] 2324 2325 *) Added inclusion hack to pthread.h.in 2326 [Ralf S. Engelschall] 2327 2328 *) Added per thread cleanup functions pth_cleanup_{push,pop}() modeled 2329 directly after the POSIX pthread_cleanup_{push,pop}() functions 2330 [Ralf S. Engelschall] 2331 2332 *) Fixed a memory leak related to pth_key_xxx(). 2333 [Ralf S. Engelschall] 2334 2335 *) Added internal pth_pqueue_contains() function 2336 [Ralf S. Engelschall] 2337 2338 *) Added public API function pth_cancel(), pth_cancel_state() and 2339 pth_cancel_point() for thread cancellation support modeled after the 2340 POSIX thread cancellation facility. 2341 [Ralf S. Engelschall] 2342 2343 *) Removed pthread.* stuff. It will be re-integrated later for Pth 1.1.x 2344 [Ralf S. Engelschall] 2345 2346 *) Added cancellation flags to pth_attr(). 2347 [Ralf S. Engelschall] 2348 2349 *) Added cancellation demo support to test_sig.c 2350 [Ralf S. Engelschall] 2351 2352 Changes between 0.9.16 and 0.9.17 (09-Jun-1999 to 18-Jun-1999) 2353 2354 *) Removed pthread_p.h 2355 [Ralf S. Engelschall] 2356 2357 *) Upgraded to latest shtool 1.3.0-dev 2358 [Ralf S. Engelschall] 2359 2360 *) Added stack overflow detection: a SIGSEGV is created when a 2361 guardian memory address at the bottom of the stack was 2362 overridden. This SIGSEGV can be even catched by the 2363 application. 2364 [Ralf S. Engelschall] 2365 2366 Changes between 0.9.15 and 0.9.16 (04-Jun-1999 to 09-Jun-1999) 2367 2368 *) Some Autoconf related cleanups. 2369 [Ralf S. Engelschall] 2370 2371 *) Added configure --enable-batch for FreeBSD port 2372 [Ralf S. Engelschall] 2373 2374 *) Removed TODO file 2375 [Ralf S. Engelschall] 2376 2377 *) Moved sigdelete stuff to new pth_util.c source 2378 [Ralf S. Engelschall] 2379 2380 *) Added pth_sigwait_ev() 2381 [Ralf S. Engelschall] 2382 2383 *) Updated pth.pod for recent changes 2384 [Ralf S. Engelschall] 2385 2386 *) Fixed GNU/Linux libc v5 pth_mctx_set() variant 2387 [Ralf S. Engelschall, Felix von Leitner <leitner@fefe.de>] 2388 2389 Changes between 0.9.14 and 0.9.15 (01-Jun-1999 to 04-Jun-1999) 2390 2391 *) Upgraded to shtool 1.2.9 2392 [Ralf S. Engelschall] 2393 2394 *) Avoid race conditions in emulated sigsetjmp() switching 2395 [Ralf S. Engelschall] 2396 2397 *) Added test_sig.c 2398 [Ralf S. Engelschall] 2399 2400 *) Fixed getsockopt() call: errlen wasn't initialized 2401 [Ralf S. Engelschall, Anton Umnikov <anton@rest.dvgu.ru>] 2402 2403 *) Allow pth_event_walk() also to use PTH_UNTIL_OCCURRED 2404 to walk to the next/prev. occurred event in a ring 2405 [Ralf S. Engelschall] 2406 2407 *) Completely overhauled the signal processing in the scheduler 2408 [Ralf S. Engelschall] 2409 2410 *) Added pth_sigwait() with POSIX semantics 2411 [Ralf S. Engelschall] 2412 2413 *) Fixed pth_join(): It returns -1 when only one thread is left 2414 [Ralf S. Engelschall] 2415 2416 *) Autoconf now no longer adds -g for gcc unless --enable-debug 2417 [Ralf S. Engelschall] 2418 2419 Changes between 0.9.13 and 0.9.14 (01-Jun-1999 to 01-Jun-1999) 2420 2421 *) Simplified the event construction by removing unnecessary PTH_UNTIL_XX 2422 flags and renaming the remaining ones to PTH_UNTIL_YY_XXX. 2423 [Ralf S. Engelschall] 2424 2425 *) Renamed PTH_EVENT_IRQ to PTH_EVENT_SIG and implemented it the first time 2426 via sigpending()/sigismember(). 2427 [Ralf S. Engelschall] 2428 2429 *) Documented the event facility in the manual page 2430 [Ralf S. Engelschall] 2431 2432 *) Switched TCB's name attribute from "char *" to "char[40]" and copy in the 2433 value when spawning. This allows applications to generate the name 2434 temporarily only. 2435 [Ralf S. Engelschall] 2436 2437 *) Cleaned up source code at lots of edges... 2438 [Ralf S. Engelschall] 2439 2440 Changes between 0.9.12 and 0.9.13 (30-May-1999 to 01-Jun-1999) 2441 2442 *) Cleaned up Makefile.in even more 2443 [Ralf S. Engelschall] 2444 2445 *) Add stackaddr argument to pth_attr() to allow the application 2446 to specificy a particular stack 2447 [Ralf S. Engelschall] 2448 2449 *) Added pthread* files which will contain the POSIX.1c threading 2450 ("pthread") API wrapper for PTH. This is still work in progress and not 2451 enabled per default (one has to use --enable-pthread). 2452 [Ralf S. Engelschall] 2453 2454 *) Added SunSoft's pthread_June95.ps document ("PThreads Summary") 2455 as pthreads.ps 2456 [Ralf S. Engelschall] 2457 2458 *) Update pth.pod to reflect recent changes. 2459 [Ralf S. Engelschall] 2460 2461 *) Optimized pth_time_cmp() 2462 [Ralf S. Engelschall] 2463 2464 *) Added support for per-thread signal masks 2465 [Ralf S. Engelschall] 2466 2467 *) Made pth_mctx_set() more robust: It now uses sigsuspend for 2468 waiting, correctly blocks signals and restores SIGUSR1 stuff 2469 [Ralf S. Engelschall] 2470 2471 *) Fixed license messages in sources files 2472 [Ralf S. Engelschall] 2473 2474 *) Removed const from pth_connect and pth_connect_ev to avoid problems 2475 [Ralf S. Engelschall] 2476 2477 *) Make sure Autoconf doesn't add -lnsl twice 2478 [Ralf S. Engelschall] 2479 2480 *) Cleaned up pth_mctx.c even more 2481 [Ralf S. Engelschall] 2482 2483 Changes between 0.9.11 and 0.9.12 (28-May-1999 to 30-May-1999) 2484 2485 *) Some fixes to test_httpd.c: init of addrlen, REQ_MAX handling 2486 [Ralf S. Engelschall] 2487 2488 *) Allow pth_join(NULL) to join any available terminated thread 2489 [Ralf S. Engelschall] 2490 2491 *) Fixed incorrect pth_event_concat() usages: terminated NULL was missing 2492 [Ralf S. Engelschall] 2493 2494 *) Added pth_connect, pth_connect_ev and pth_accept_ev functions 2495 [Ralf S. Engelschall] 2496 2497 *) Removed unnecessary b_extra stuff from pth_read/pth_write 2498 [Ralf S. Engelschall] 2499 2500 *) Removed "intern" on pth_time(), it's a public API function 2501 [Ralf S. Engelschall] 2502 2503 *) Added pth_timeout() constructor function 2504 [Ralf S. Engelschall] 2505 2506 *) Fixed event handling for all pth_xxx_ev() functions 2507 [Ralf S. Engelschall] 2508 2509 *) Use pth_readline_ev() in test_mp to show how pth_xxx_ev() works 2510 [Ralf S. Engelschall] 2511 2512 *) Converted pth_nap() and pth_join() to use PTH_MODE_STATIC 2513 [Ralf S. Engelschall] 2514 2515 *) Fixed event initialization in event rings 2516 [Ralf S. Engelschall] 2517 2518 *) Kicked out the whole "occurred event ring" stuff because it's not really 2519 necessary (one can walk through a single ring and check for occurred 2520 events easily) and this way two nasty bugs can be fixed and the event 2521 manager simplified a lot. pth_wait() not has only one argument 2522 and this is a read-only one, i.e. only the occured flag is set 2523 in the events in this ring, but the ring is no longer changed. 2524 [Ralf S. Engelschall] 2525 2526 Changes between 0.9.10 and 0.9.11 (28-May-1999 to 28-May-1999) 2527 2528 *) Fix warnings in test_httpd.c 2529 [Ralf S. Engelschall] 2530 2531 *) Upgraded to final shtool 1.2.8 2532 [Ralf S. Engelschall] 2533 2534 *) Added PTH_KEY_INIT 2535 [Ralf S. Engelschall] 2536 2537 *) Added PTH_MODE_STATIC for statically allocating 2538 a per-thread event. This is now used by the various high-level functions 2539 to avoid unnecessary alloc/free sequences. 2540 [Ralf S. Engelschall] 2541 2542 Changes between 0.9.9 and 0.9.10 (25-May-1999 to 28-May-1999) 2543 2544 *) Cleaned up Makefile.in 2545 [Ralf S. Engelschall] 2546 2547 *) Upgraded to GNU libtool 1.3.2 2548 [Ralf S. Engelschall] 2549 2550 *) Upgraded to new shtool 1.2.8 which includes scpp 2551 [Ralf S. Engelschall] 2552 2553 *) Merged all pth_foo.h's into pth_foo.c's with the help of shtool scpp 2554 [Ralf S. Engelschall] 2555 2556 *) Updated dependencies after pth_p.h overhauling 2557 [Ralf S. Engelschall] 2558 2559 *) Added TODO file 2560 [Ralf S. Engelschall] 2561 2562 Changes between 0.9.8 and 0.9.9 (24-May-1999 to 25-May-1999) 2563 2564 *) Finally converted library generation to use GNU libtool 2565 [Ralf S. Engelschall] 2566 2567 *) Add hints to BIND 8 and adns to manual page 2568 [Ralf S. Engelschall] 2569 2570 *) Fixed memory leaks in test_httpd and test_mp 2571 [Ralf S. Engelschall, Flux <flux@iae.nl>] 2572 2573 *) Fixed typos in manual page 2574 [Ralf S. Engelschall] 2575 2576 *) Fix -lsocket -lnsl tests for Siemens platforms 2577 [Ralf S. Engelschall] 2578 2579 *) Fix chmod in Autoconf stuff 2580 [Ralf S. Engelschall] 2581 2582 *) Removed unneccessary pth_ring_linked() 2583 [Ralf S. Engelschall] 2584 2585 Changes between 0.9.7 and 0.9.8 (23-May-1999 to 24-May-1999) 2586 2587 *) Fixed bug in priority queue element counting (q_num) 2588 [Ralf S. Engelschall] 2589 2590 *) pth_spawn() now inherits the attributes from the parent thread 2591 [Ralf S. Engelschall] 2592 2593 *) Merged pth_stat() and pth_load() into a generic extensible pth_ctrl() 2594 [Ralf S. Engelschall] 2595 2596 *) Added new pth_fork() function 2597 [Ralf S. Engelschall] 2598 2599 *) Added depend target to Makefile.in and generated dependencies 2600 [Ralf S. Engelschall] 2601 2602 *) Moved joinable argument from pth_attr() to the flags argument 2603 [Ralf S. Engelschall] 2604 2605 *) Added PTH_CTRL_GETPRIO and PTH_CTRL_GETNAME. 2606 [Ralf S. Engelschall] 2607 2608 *) Typo was everywhere: preemtive => preemptive 2609 [Ralf S. Engelschall] 2610 2611 *) Typo was everywhere: occured => occurred 2612 [Ralf S. Engelschall] 2613 2614 *) Finished manual page 2615 [Ralf S. Engelschall] 2616 2617 *) Removed useless PTH_UNTIL_RUNNING 2618 [Ralf S. Engelschall] 2619 2620 *) Replaced errno support with a better variant 2621 [Ralf S. Engelschall] 2622 2623 *) Lots of small fixes and portability cleanups 2624 [Ralf S. Engelschall] 2625 2626 Changes between 0.9.6 and 0.9.7 (22-May-1999 to 23-May-1999) 2627 2628 *) Added PORTING document. 2629 [Ralf S. Engelschall] 2630 2631 *) Added errno support (pth_errno.[ch]). 2632 [Ralf S. Engelschall] 2633 2634 *) Added exponential average load calculations for scheduler. The current 2635 load value can be retrieved by the application through pth_load(). 2636 [Ralf S. Engelschall] 2637 2638 Changes between 0.9.5 and 0.9.6 (21-May-1999 to 22-May-1999) 2639 2640 *) Added more documentation. 2641 [Ralf S. Engelschall] 2642 2643 *) Autoconf now determines the direction of stack grow and pth_mctx_set() 2644 uses this information for sigstack() now. 2645 [Ralf S. Engelschall] 2646 2647 *) Fixed acconfig.h 2648 [Ralf S. Engelschall] 2649 2650 *) Increased stacksizes (was too small for Solaris and friends) 2651 [Ralf S. Engelschall] 2652 2653 *) Switched from BSD-style license to LGPL license 2654 [Ralf S. Engelschall] 2655 2656 *) Fixed a nasty bug in scheduler: 2657 when a thread was moved from the wait to the ready queue, it's state 2658 wasn't changed to pth_state_ready. This way the next time it was handled 2659 it was incorrectly filed to the waiting queue (which caused core dumps 2660 because the ev_waiting/ev_occurred pointers didn't exist). This way now 2661 the stuff works great also under Solaris! 2662 [Ralf S. Engelschall] 2663 2664 Changes between 0.9.4 and 0.9.5 (21-May-1999 to 21-May-1999) 2665 2666 *) Renamed pth_{get,set}specific() to pth_key_{get,set}data(). 2667 [Ralf S. Engelschall] 2668 2669 *) Renamed remaining pth_message_xxx() to pth_msgport_xxx() 2670 [Ralf S. Engelschall] 2671 2672 *) Added pth_{readline,read,write}_ev() functions which are similar to 2673 pth_{readline,read,write}() but have an additional event argument which 2674 can be used for timeouts and other parallel events. 2675 [Ralf S. Engelschall] 2676 2677 Changes between 0.9.3 and 0.9.4 (14-May-1999 to 21-May-1999) 2678 2679 *) Added ring datastructures (pth_ring.[ch]). 2680 [Ralf S. Engelschall] 2681 2682 *) Add an AmigaOS-style message port facility (pth_msg.[ch]). 2683 [Ralf S. Engelschall] 2684 2685 *) Added a message port related test program (test_mp.c). 2686 [Ralf S. Engelschall] 2687 2688 *) Fix scheduler event management bug: when no I/O events existed 2689 plus a next timer but other events (e.g. message ports) already occurred, 2690 the scheduler blocked instead of handling the already occurred events 2691 first. 2692 [Ralf S. Engelschall] 2693 2694 *) Fix bug in event creating: the event occurrence flag has to be cleared in 2695 pth_wait() to avoid spinning events which were already occurred. 2696 [Ralf S. Engelschall] 2697 2698 Changes between 0.9.2 and 0.9.3 (14-May-1999 to 14-May-1999) 2699 2700 *) Added pth_once() for later (pthreads!) 2701 [Ralf S. Engelschall] 2702 2703 *) Splitted pth.c into pth.c and pth_high.c 2704 [Ralf S. Engelschall] 2705 2706 *) Added pth_data.[ch] with pthread style data storage stuff 2707 [Ralf S. Engelschall] 2708 2709 *) Moved readline stuff from test_httpd to pth_high.c as pth_readline() 2710 [Ralf S. Engelschall] 2711 2712 *) Removed debugging fprintf from test_httpd to speed it up 2713 [Ralf S. Engelschall] 2714 2715 *) Fixed listen() call: now uses REQ_MAX for backlog and tests for -1 2716 [Ralf S. Engelschall] 2717 2718 *) Fix a polling-related timer bug in the event manager 2719 [Ralf S. Engelschall] 2720 2721 Changes between 0.9.1 and 0.9.2 (13-May-1999 to 14-May-1999) 2722 2723 *) renamed pth_asynchronize() to pth_nonblocking() 2724 [Ralf S. Engelschall] 2725 2726 *) removed implicit pth_nonblocking() calls 2727 [Ralf S. Engelschall] 2728 2729 *) speeded up pth_accept by optimizing event alloc/free 2730 [Ralf S. Engelschall] 2731 2732 *) cleaned up pth_waitpid 2733 [Ralf S. Engelschall] 2734 2735 *) Changed semantics of pth_wait(var, NULL): it now means 2736 that the events in var are not removed (although their 2737 chanining might be changed) 2738 [Ralf S. Engelschall] 2739 2740 *) Renamed internal pth_usleep() to pth_time_usleep() 2741 [Ralf S. Engelschall] 2742 2743 *) Replaced pth_sleep() with pth_nap() and added 2744 two replacement functions: pth_sleep() for a variant 2745 of sleep(3) and pth_usleep() for a variant of usleep(3). 2746 [Ralf S. Engelschall] 2747 2748 *) Optimized scheduler a little bit by inlining pth_time_{set,add,sub} 2749 [Ralf S. Engelschall] 2750 2751 *) Added pth_pqueue_{head,walk} functions and used it in eventmanager 2752 [Ralf S. Engelschall] 2753 2754 *) Rewrote pth_sched_eventmanager() without a surrounding loop 2755 [Ralf S. Engelschall] 2756 2757 *) Implemented a readline() function to speedup test_httpd 2758 [Ralf S. Engelschall] 2759 2760 Changes between 0.9.0 and 0.9.1 (12-May-1999 to 13-May-1999) 2761 2762 *) Imported into CVS repository 2763 [Ralf S. Engelschall] 2764 2765 Changes between GENESIS and 0.9.0 (Feb-1999 to 12-May-1999) 2766 2767 *) Created initial version on FreeBSD 2768 [Ralf S. Engelschall] 2769 2770 *) Ported to Linux 2771 [Ralf S. Engelschall] 2772 2773