Nepracujem s dynamickym polem z handleru signalu
[mirrors/Programs.git] / c / pthread_extra / pthread_extra.h
index faffb3d7165ee4897e4b80cbc032f558193ad7a8..ca5514d26f6bf04992b88f6b11c54b36e33d032f 100644 (file)
@@ -18,8 +18,9 @@
 #ifdef __PTHREAD_EXTRA_INTERNAL
 typedef struct pthread_user_data_internal_t {
        pthread_t tid; //Thread ID
-       sig_atomic_t running; //Internaly used by pthread_pause
        void *usr; //User pointer
+       //Internaly used members:
+       sig_atomic_t running; //pthread_pause
 } pthread_user_data_internal_t;
 
 pthread_user_data_internal_t* pthread_user_data_internal(pthread_t thread);
@@ -28,6 +29,7 @@ pthread_user_data_internal_t* pthread_user_data_internal(pthread_t thread);
 void** pthread_user_data_ptr(pthread_t thread);
 void*  pthread_user_data_get(pthread_t thread);
 void   pthread_user_data_set(pthread_t thread, void *usr);
+void   pthread_user_data_cleanup(void * arg);
 
 // Pausing
 
@@ -36,11 +38,17 @@ void   pthread_user_data_set(pthread_t thread, void *usr);
 #define PTHREAD_XSIG_CONT (SIGRTMIN+1)
 #define PTHREAD_XSIGRTMIN (SIGRTMIN+2) //First unused RT signal
 
+int pthread_extra_create(pthread_t *restrict thread,
+                          const pthread_attr_t *restrict attr,
+                          void *(*start_routine)(void *),
+                          void *restrict arg);
 void pthread_unpause_handler();
 void pthread_pause_handler();
 void pthread_pause_enable();
 int pthread_pause(pthread_t thread);
 int pthread_unpause(pthread_t thread);
+int pthread_pause_reschedule(pthread_t thread);
+int pthread_extra_yield();
 
 // Message queues
 
This page took 0.117978 seconds and 4 git commands to generate.