#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);
+int pthread_user_data_lock();
+int pthread_user_data_unlock();
#endif //__PTHREAD_EXTRA_INTERNAL
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);
+int pthread_user_data_internal_iterate(int (*routine)(pthread_t), void *arg);
// Pausing
void pthread_unpause_handler();
void pthread_pause_handler();
void pthread_pause_enable();
+void pthread_pause_disable();
int pthread_pause(pthread_t thread);
int pthread_unpause(pthread_t thread);
+int pthread_pause_all();
+int pthread_unpause_all();
int pthread_pause_reschedule(pthread_t thread);
int pthread_extra_yield();