
jdk.internal.sys.posix.PThread Maven / Gradle / Ivy
package jdk.internal.sys.posix;
import static org.qbicc.runtime.CNative.*;
import static org.qbicc.runtime.stdc.Signal.*;
import static org.qbicc.runtime.stdc.Stddef.*;
import static org.qbicc.runtime.stdc.Time.*;
import org.qbicc.runtime.NoReturn;
/**
* See the specification.
*/
@include("")
@lib("pthread")
@define(value = "_POSIX_C_SOURCE", as = "200809L")
public final class PThread {
public static final c_int PTHREAD_MUTEX_RECURSIVE = constant();
public static class pthread_t extends word {}
public static class pthread_attr_t extends word {}
public static class pthread_mutex_t extends word {}
public static class pthread_mutexattr_t extends word {}
public static class pthread_cond_t extends word {}
public static class pthread_condattr_t extends word {}
public static final pthread_mutex_t PTHREAD_MUTEX_INITIALIZER = constant();
public static final pthread_cond_t PTHREAD_COND_INITIALIZER = constant();
public static native c_int pthread_attr_init(ptr attr);
public static native c_int pthread_attr_destroy(ptr attr);
public static native c_int pthread_attr_getstack(ptr<@c_const pthread_attr_t> attr, ptr> stackAddr, ptr stackSize);
public static native c_int pthread_attr_setstack(ptr attr, ptr> stackAddr, size_t stackSize);
public static native c_int pthread_attr_getstacksize(@restrict ptr<@c_const pthread_attr_t> attr, @restrict ptr size_ptr);
public static native c_int pthread_attr_setstacksize(ptr attr, size_t size);
public static native c_int pthread_create(ptr thread, ptr<@c_const pthread_attr_t> attr,
ptr> start_routine, ptr> arg);
@FunctionalInterface
public interface pthread_run {
ptr> run(ptr> arg);
}
public static native pthread_t pthread_self();
public static native c_int pthread_detach(pthread_t thread);
@NoReturn
public static native void pthread_exit(ptr> arg);
public static native c_int pthread_kill(pthread_t thread, c_int signal);
public static native c_int pthread_sigmask(c_int how, ptr<@c_const sigset_t> set, ptr oldSet);
public static native c_int pthread_mutex_init(ptr mutex, ptr<@c_const pthread_mutexattr_t> attr);
public static native c_int pthread_mutex_lock(ptr mutex);
public static native c_int pthread_mutex_unlock(ptr mutex);
public static native c_int pthread_mutex_destroy(ptr mutex);
public static native c_int pthread_mutexattr_init(ptr attr);
public static native c_int pthread_mutexattr_settype(ptr attr, c_int type);
public static native c_int pthread_mutexattr_destroy(ptr attr);
public static native c_int pthread_cond_init(ptr cond, ptr attr);
public static native c_int pthread_cond_destroy(ptr cond);
public static native c_int pthread_cond_signal(ptr cond);
public static native c_int pthread_cond_broadcast(ptr cond);
public static native c_int pthread_cond_wait(ptr cond, ptr mutex);
public static native c_int pthread_cond_timedwait(ptr cond, ptr mutex, ptr<@c_const struct_timespec> abstime);
public static native c_int pthread_condattr_init(ptr attr);
public static native c_int pthread_condattr_destroy(ptr attr);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy