X-Git-Url: http://git.harvie.cz/?a=blobdiff_plain;f=c%2Fpthread_extra%2Fpthread_extra.h;h=56c440b5f03751c8c0792a3412b8308b8a8d7a9c;hb=HEAD;hp=ca5514d26f6bf04992b88f6b11c54b36e33d032f;hpb=dec91d377d95ff0388a1d2297bb9c88ea076bd78;p=mirrors%2FPrograms.git diff --git a/c/pthread_extra/pthread_extra.h b/c/pthread_extra/pthread_extra.h index ca5514d..56c440b 100644 --- a/c/pthread_extra/pthread_extra.h +++ b/c/pthread_extra/pthread_extra.h @@ -24,12 +24,15 @@ typedef struct pthread_user_data_internal_t { } 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 @@ -45,11 +48,20 @@ int pthread_extra_create(pthread_t *restrict thread, 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(); +// Pause compatible sleeps + +void pthread_nanosleep(struct timespec t); +void pthread_nsleep(time_t s, long ns); +void pthread_sleep(time_t s); + // Message queues //Flags