diff options
| -rw-r--r-- | ChangeLog | 18 | ||||
| -rw-r--r-- | Makefile.in | 14 | ||||
| -rw-r--r-- | cleanup.c | 4 | ||||
| -rw-r--r-- | pthread.def | 10 | ||||
| -rw-r--r-- | pthread.h | 20 | ||||
| -rw-r--r-- | semaphore.c | 6 | ||||
| -rw-r--r-- | sync.c | 6 | 
7 files changed, 53 insertions, 25 deletions
@@ -1,3 +1,21 @@ +Fri Feb  5 13:42:30 1999  Ross Johnson  <rpj@swan.canberra.edu.au> + +	* semaphore.c: Comment format changes. + +Wed Feb  3 13:04:44 1999  Ross Johnson  <rpj@swan.canberra.edu.au> + +	* cleanup.c: Rename _pthread_*_cleanup() to pthread_*_cleanup(). + +	* pthread.def: Ditto. +	 +	* pthread.h: Ditto. + +	* pthread.def (pthread_cleanup_push): Remove from export list; +	the function is defined as a macro under all compilers. +	(pthread_cleanup_pop): Ditto. + +	* pthread.h: Remove #if defined(). +  Wed Feb  3 10:13:48 1999  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>  	* sync.c (pthread_join): Check for NULL value_ptr arg; diff --git a/Makefile.in b/Makefile.in index b7db1af..91a1580 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,3 +1,5 @@ +RM	= erase +  CC	= g++  # Mingw32 @@ -18,6 +20,7 @@ DLL     = pthread.dll  LIB	= libpthread32.a +  all:	$(DLL)  $(LIB):	$(OBJS) @@ -34,6 +37,11 @@ $(DLL): $(OBJS)  	dlltool --def $*.def --output-lib $*.lib --dllname $@  clean: -	-rm *~ -	-rm $(LIB) *.o *.exe -	-rm $(DLL) $(DLL:.dll=.base) $(DLL:.dll=.exp) $(DLL:.dll=.lib) +	-$(RM) *~ +	-$(RM) $(LIB) +	-$(RM) *.o  +	-$(RM) *.exe +	-$(RM) $(DLL)  +	-$(RM) $(DLL:.dll=.base) +	-$(RM) $(DLL:.dll=.exp) +	-$(RM) $(DLL:.dll=.lib) @@ -20,7 +20,7 @@   */  _pthread_cleanup_t * -_pthread_pop_cleanup (int execute) +pthread_pop_cleanup (int execute)       /*        * ------------------------------------------------------        * DOCPUBLIC @@ -120,7 +120,7 @@ _pthread_pop_cleanup (int execute)  void -_pthread_push_cleanup (_pthread_cleanup_t * cleanup, +pthread_push_cleanup (_pthread_cleanup_t * cleanup,  		      void (*routine) (void *),  		      void *arg)       /* diff --git a/pthread.def b/pthread.def index 542f07b..4f8c69e 100644 --- a/pthread.def +++ b/pthread.def @@ -1,5 +1,5 @@  ; pthread.def -; Last updated: $Date: 1999/02/02 02:02:08 $ +; Last updated: $Date: 1999/02/08 21:19:57 $  ; Currently unimplemented functions are commented out. @@ -24,8 +24,8 @@ pthread_attr_setschedparam  ;pthread_attr_setstackaddr  pthread_attr_setstacksize  pthread_cancel -pthread_cleanup_pop -pthread_cleanup_push +;pthread_cleanup_pop +;pthread_cleanup_push  pthread_condattr_destroy  pthread_condattr_getpshared  pthread_condattr_init @@ -77,5 +77,5 @@ pthreadCancelableTimedWait  ;  ; Needed if !defined(_MSC_VER) && !defined(__cplusplus)  ; -_pthread_push_cleanup -_pthread_pop_cleanup +pthread_push_cleanup +pthread_pop_cleanup @@ -710,10 +710,10 @@ struct _pthread_cleanup_t  	{ \  	    _pthread_cleanup_t	_cleanup; \              \ -	    _pthread_push_cleanup( &_cleanup, (_rout), (_arg) ); \ +	    pthread_push_cleanup( &_cleanup, (_rout), (_arg) ); \  #define pthread_cleanup_pop( _execute ) \ -	    (void) _pthread_pop_cleanup( _execute ); \ +	    (void) pthread_pop_cleanup( _execute ); \  	}  #else /* !__cplusplus */ @@ -851,16 +851,6 @@ pthread_t pthread_self (void);  int pthread_cancel (pthread_t thread); -#if !defined(__cplusplus) && !defined(_MSC_VER) - -_pthread_cleanup_t *_pthread_pop_cleanup (int execute); - -void _pthread_push_cleanup (_pthread_cleanup_t * cleanup, -			   void (*routine) (void *), -			   void *arg); - -#endif /* !__cplusplus && ! _MSC_VER */ -  int pthread_setcancelstate (int state,  			    int *oldstate); @@ -872,6 +862,12 @@ void pthread_testcancel (void);  int pthread_once (pthread_once_t * once_control,  		  void (*init_routine) (void)); +_pthread_cleanup_t *pthread_pop_cleanup (int execute); + +void pthread_push_cleanup (_pthread_cleanup_t * cleanup, +			   void (*routine) (void *), +			   void *arg); +  /*   * Thread Specific Data Functions   */ diff --git a/semaphore.c b/semaphore.c index e682201..f3bd5c9 100644 --- a/semaphore.c +++ b/semaphore.c @@ -68,7 +68,7 @@ _pthread_sem_init (_pthread_sem_t * sem, int pshared, unsigned int value)        *      initial value of the semaphore is set to 'value'.        *        * RESULTS -      *              0                       successfully created semaphore, +      *              0               successfully created semaphore,        *              EINVAL          'sem' is not a valid semaphore,        *              ENOSPC          a required resource has been exhausted,        *              ENOSYS          semaphores are not supported, @@ -127,7 +127,7 @@ _pthread_sem_destroy (_pthread_sem_t * sem)        *      This function destroys an unnamed semaphore.        *        * RESULTS -      *              0                       successfully destroyed semaphore, +      *              0               successfully destroyed semaphore,        *              EINVAL          'sem' is not a valid semaphore,        *              ENOSYS          semaphores are not supported,        *              EBUSY           threads (or processes) are currently @@ -163,7 +163,7 @@ _pthread_sem_trywait (_pthread_sem_t * sem)        *      this function returns immediately with the error EAGAIN        *        * RESULTS -      *              0                       successfully destroyed semaphore, +      *              0               successfully decreased semaphore,        *              EAGAIN          the semaphore was already locked,        *              EINVAL          'sem' is not a valid semaphore,        *              ENOSYS          semaphores are not supported, @@ -123,6 +123,12 @@ pthread_join (pthread_t thread, void **value_ptr)  	    }  	  else  	    { +	      /*  +	       * FIXME: This call frees memory used to hold the 'thread' +	       * object. 'thread' will be invalid after the first call. +	       * +	       * Only the last exiting join should free 'thread'. +	       */  	      _pthread_threadDestroy (thread);  	    }  	}  | 
