diff options
| -rw-r--r-- | ANNOUNCE | 43 | ||||
| -rw-r--r-- | sched.h | 12 | ||||
| -rw-r--r-- | semaphore.c | 7 | ||||
| -rw-r--r-- | tests/Makefile | 3 | ||||
| -rw-r--r-- | tests/benchtest4.c | 2 | ||||
| -rw-r--r-- | tests/exception3.c | 2 | 
6 files changed, 43 insertions, 26 deletions
| @@ -1,4 +1,4 @@ -                 PTHREADS-WIN32 SNAPSHOT 2001-??-??
 +                 PTHREADS-WIN32 SNAPSHOT 2001-07-03
                   ----------------------------------
         Web Site: http://sources.redhat.com/pthreads-win32/
        FTP Site: ftp://sources.redhat.com/pub/pthreads-win32
 @@ -48,8 +48,8 @@ sched_setscheduler  sched_getscheduler
  ------------------
  These routines will require patching to work with UWIN
 -or any other system that provides it's own pid_t.
 -Pthread.h conditionally defines pid_t as a DWORD, which
 +and any other system that provides it's own pid_t.
 +Our pthread.h conditionally defines pid_t as a DWORD, which
  is the type returned by GetCurrentProcessId().
  The only supported policy is SCHED_OTHER, however, in
 @@ -116,8 +116,10 @@ Snapshot-2001-06-06 included Thomas Pfaff's enhancements  to the mutex routines to improve speed. The improvements
  are very large on Win9x class systems where pthreads-win32
  previously used Win32 mutexes rather than critical
 -sections as the underlying mechanism. On WNT systems speed
 -appears to have decreased a little. On Win9x the enhancements
 +sections as the underlying mechanism. Based on some new
 +benchtest programs that have been run on a Win98 machine
 +(and included in the tests directory), WNT systems speed
 +has probably decreased a little. On Win9x the enhancements
  also resulted in speed improvements in other primitives
  which use mutexes internally, such as condition variables
  and read-write locks. Thomas also added mutex
 @@ -126,8 +128,8 @@ Specification documentation, and as provided with  the majority of major Unix and Linux Pthreads
  implementations.
 -Overall, the library provides far more consistent performance
 -across the different Windows variants with greater compatibility.
 +Overall, the library now provides far more consistent performance
 +across the different Windows variants and greater compatibility.
  Future work will continue to improve on this.
  New changes:
 @@ -161,7 +163,7 @@ unlocked or destroyed, an error will ultimately eventuate  when the owner thread subsequently attempts to unlock or
  destroy the mutex.
 -These mutex changes appear to be consistent with both
 +These changes appear to be consistent with both
  the behaviour exhibited by other implementations and their
  documentation, including the Open Group documentation.
 @@ -191,9 +193,9 @@ Each test does timings for each of the implemented  mutex types and, for reference, also repeats the same
  tests using the following:
 -Simple Critical Section
 -POSIX mutex implemented using a Critical Section
 -POSIX mutex implemented using a Win32 Mutex
 +- Simple Critical Section
 +- POSIX mutex implemented using a Critical Section
 +- POSIX mutex implemented using a Win32 Mutex
  The later two represent the old implementation under
  WNT and W9x respectively.
 @@ -204,9 +206,10 @@ PTHREAD_MUTEX_NORMAL  PTHREAD_MUTEX_ERRORCHECK
  PTHREAD_MUTEX_RECURSIVE
 -These tests indicate that is may be worthwhile re-introducing
 -runtime adaptation of the underlying Win32 synchronisation
 -mechanism for WinNT.
 +The results from these tests indicate that is may be
 +worthwhile re-introducing runtime adaptation of the
 +underlying Win32 synchronisation mechanism for WinNT
 +systems.
  ---------
 @@ -216,12 +219,18 @@ Pthread_create now sets the priority of the new thread  from the value set in the thread attribute. 
  - from Ralf.Brese@pdb4.siemens.de.
 -A "lost signal" bug in condition variables that I introduced
 -in the last snapshot has been fixed.
 +In the last snapshot I introduced a "lost signal" bug into
 +the condition variables code.
  - fixed by Alexander Terekhov
  - reported by Timur Aydin taydin@snet.net
 +---------
 +New tests
 +---------
 +Several new tests have been added to the test suite.
 +
 +
  ---------------------------
  Known bugs in this snapshot
  ---------------------------
 @@ -419,7 +428,7 @@ The following functions are implemented:        pthread_attr_setscope  (returns an error ENOSYS)
        sched_get_priority_max (POSIX 1b)
        sched_get_priority_min (POSIX 1b)
 -      sched_rr_set_interval  (POSIX 1b  - returns an error ENOSYS)
 +      sched_rr_get_interval  (POSIX 1b  - returns an error ENOTSUP)
        sched_setscheduler     (POSIX 1b  - only supports SCHED_OTHER)
        sched_getscheduler     (POSIX 1b  - only supports SCHED_OTHER)
        sched_yield            (POSIX 1b)
 @@ -66,8 +66,18 @@ int sched_setscheduler (pid_t pid, int policy);  int sched_getscheduler (pid_t pid); +/* + * Note that this macro returns ENOTSUP rather than + * ENOSYS as might be expected. However, returning ENOSYS + * should mean that sched_get_priority_{min,max} are + * not implemented as well as sched_rr_get_interval. + * This is not the case, since we just don't support + * round-robin scheduling. Therefore I have chosen to + * return the same value as sched_setscheduler when + * SCHED_RR is passed to it. + */  #define sched_rr_get_interval(_pid, _interval) \ -  ( errno = ENOSYS, (int) -1 ) +  ( errno = ENOTSUP, (int) -1 )  #ifdef __cplusplus diff --git a/semaphore.c b/semaphore.c index 81b777f..ee9c8f6 100644 --- a/semaphore.c +++ b/semaphore.c @@ -487,7 +487,7 @@ sem_post_multiple (sem_t * sem, int count )        *              -1              failed, error in errno        * ERRNO        *              EINVAL          'sem' is not a valid semaphore -      *                              or count is less than zero. +      *                              or count is not greater than zero.        *        * ------------------------------------------------------        */ @@ -498,10 +498,7 @@ sem_post_multiple (sem_t * sem, int count )      {        result = EINVAL;      } -  else if (count == 0) -    { -      return 0; -    } +  else  #ifdef NEED_SEM diff --git a/tests/Makefile b/tests/Makefile index 7fd32af..6ac342d 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -60,7 +60,7 @@ PASSES= loadfree.pass \  	  exception1.pass  exception2.pass  exception3.pass
  BENCHRESULTS = \
 -	  benchtest1.pass benchtest2.pass
 +	  benchtest1.bench benchtest2.bench benchtest3.bench benchtest4.bench
  all:
  	@ $(ECHO) Run one of the following command lines:
 @@ -144,6 +144,7 @@ clean:  benchtest1.bench:
  benchtest2.bench:
  benchtest3.bench:
 +benchtest4.bench:
  cancel1.pass: create1.pass
  cancel2.pass: cancel1.pass
  cancel3.pass: context1.pass
 diff --git a/tests/benchtest4.c b/tests/benchtest4.c index c343db7..8d174a2 100644 --- a/tests/benchtest4.c +++ b/tests/benchtest4.c @@ -77,7 +77,7 @@ main (int argc, char *argv[])    pthread_mutexattr_init(&ma);    printf( "========================================================================\n"); -  printf( "Non-blocking mutex trylock plus unlock.\n"); +  printf( "Trylock plus unlock on an unlocked mutex.\n");    printf( "%ld iterations.\n\n", ITERATIONS);    printf( "%-40s %15s %15s\n",  	    "Test", diff --git a/tests/exception3.c b/tests/exception3.c index 216dc27..a343b45 100644 --- a/tests/exception3.c +++ b/tests/exception3.c @@ -1,7 +1,7 @@  /*   * File: exception3.c   * - * Test Synopsis: Test running of user supplied teerminate() function. + * Test Synopsis: Test running of user supplied terminate() function.   *   * Test Method (Validation or Falsification):   * -  | 
